HTTPResponse对象的响应数据类型为字节。
conn = http.client.HTTPConnection(www.yahoo.com)
conn.request("GET","/")
response = conn.getresponse();
data = response.read()
type(data)
数据的类型为bytes。
我想将响应与Python 3.1的内置HTML解析器一起使用。但是我发现HTMLParser.feed()需要一个字符串(str类型)。此方法不接受数据作为参数。为了避免这个问题,我使用data.decode()继续解析。
问题:
-
-
HTTP有原因吗
我想原因是:服务器的响应可以是任何字符集。因此,库不能假设它是ASCII码。但是,python中的字符串是Unicode。HTTP库也可以返回一个字符串。HTML标签肯定是ASCII格式的。