私はWindows8でPython3.3.0を使用しています。
requrl = urllib.request.Request(url)
response = urllib.request.urlopen(requrl)
source = response.read()
source = source.decode('utf-8')
Webサイトにutf-8
文字セットがある場合は正常に機能しますが、文字セットがある場合はどうなりますiso-8859-1
かcharset
。つまり、異なる文字セットで異なるWebサイトのURLを使用している可能性があります。では、複数の文字セットを処理する方法は?
この問題を次のように解決しようとしたときの私の努力をお話ししましょう。
b1 = b'charset=iso-8859-1'
b1 = b1.decode('iso-8859-1')
if b1 in source:
source = source.decode('iso-8859-1')
Soのようなエラーが発生TypeError: Type str doesn't support the buffer API
したので、b1を文字列と見なしていると思います。これは正しい方法ではありません!:(
ソースコードの文字セットを手動で変更したり、Pythonのドキュメントを読んだりしないでください。私はすでにPython3のドキュメントに頭を入れようとしましたが、それでも運がないか、読むための正しいモジュール/コンテンツを選択していない可能性があります!