我正在使用Python requests
库来制作get&发布请求然后我使用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)
方法返回None
如果上面的响应文字中有特殊字符,由于这个原因,我无法使用{{1}获取所需信息} 方法。
另外,如果我尝试用空字符串('')替换上面有特殊字符的文本,我会得到以下编译时异常:
etree.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
中对响应文本进行编码,但都是徒劳的
请帮助我摆脱这个麻烦。
答案 0 :(得分:1)
您看到UTF-8字节的结果被误解为Latin-1(ISO-8859-1)。但是,您应该首先不将Unicode传递给ElementTree API。
改为使用response.content
属性; .text
为您提供解码值(在这种情况下,错误解码):
etree.HTML(response.content)