24

私は Python で Web クローラーを作成していますが、Web サイトから見出しを取得する必要があります。

見出しの 1 つを読むべきだった : そしてヒップもやってくる

しかし、その代わりにこう言った: そしてヒップもやってくる

ここで何がうまくいかないのですか?

4

2 に答える 2

51

これはエンコーディング エラーです。Unicode 文字列の場合は、次のように修正する必要があります。

text.encode("windows-1252").decode("utf-8")

プレーン文字列の場合は、追加の手順が必要になります。

text.decode("utf-8").encode("windows-1252").decode("utf-8")

これらはどちらも Unicode 文字列を提供します。

ところで、このようなテキストがエンコーディングの問題によってどのように壊れているかを調べるには、 chardetを使用できます。

>>> import chardet
>>> chardet.detect(u"And the Hip’s coming, too")
{'confidence': 0.5, 'encoding': 'windows-1252'}
于 2012-10-28T16:36:30.503 に答える
13

ソーステキストを適切にデコードする必要があります。ほとんどの場合、ソース テキストは ASCII ではなく UTF-8 形式です。

質問に対してコンテキストやコードを提供していないため、直接的な回答を提供することはできません。

Python で Unicode と文字エンコーディングがどのように行われるかを調べることをお勧めします。

http://docs.python.org/2/howto/unicode.html

于 2012-10-28T16:26:34.310 に答える