0

Pythonrequestsライブラリを使用して get & post リクエストを作成し、次のように ElementTree を使用してレスポンスを解析します。

etree.HTML(response.text)  

場合によっては、応答として次のテキストを受け取ります。このテキストには、太字で強調表示された特殊文字が含まれています。

Hoover’s Inc., a D&B Company puts you on the fastest path to business.                © 2012 Hoover's Inc, Inc. All rights reserved.  

これは私に問題を引き起こし、上記のような応答テキストに特殊文字が含まれているとetree.HTML(response.text)メソッドが返されます。このため、メソッドを使用して必要な情報を取得できません。 Noneetree.xpath()

また、特殊文字を含む上記のテキストを空の文字列 ('') に置き換えようとすると、次のコンパイル時の例外が発生します。

Non-ASCII character '\xe2' in file E:\abc\xyz.py on line 50, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

また、応答テキストをエンコードしようとしましたISO-8859-1が、すべて無駄でした。
この問題から私を解放するのを手伝ってください。

4

1 に答える 1

1

UTF-8 バイトが Latin-1 (ISO-8859-1) として誤って解釈された結果が表示されています。ただし、そもそも ElementTree API に Unicode を渡すべきではありません。

response.content代わりに属性を使用してください。.textデコードされた値を提供します(この場合、誤ってデコードされます):

etree.HTML(response.content)  
于 2013-08-20T12:23:55.490 に答える