2013-08-20 44 views
0

我使用Python requests庫,使得到& POST請求,然後我用解析ElementTree,一個如下的迴應:如何處理HTML中的特殊字符?

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)方法返回None是否有響應文本特殊字符,如上方,由於這個原因,我無法獲得所需的使用信息方法。

而且,如果我試圖取代它與空字符串(「」),我得到以下編譯時異常特殊字符上面的文字:

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,但都是徒勞的。
請幫我擺脫這個麻煩。

回答

1

您將看到UTF-8字節被誤解爲Latin-1(ISO-8859-1)的結果。但是,您應該首先將Unicode傳遞給ElementTree API。

改爲使用response.content屬性; .text給出解碼值(在這種情況下,解碼錯誤):

etree.HTML(response.content)