解码来自urllib的HTML输出

时间:2014-07-08 22:14:57

标签: python decode

我试图从网页上获取HTML输出。

data = response.read()

给了我类似的东西:

b'\x1f\x8b\x08\x00\x00\x00\x00\...

如何将这些字符转换为:

"<html><body>.."

1 个答案:

答案 0 :(得分:3)

您正在处理gzipped回复。您可以通过检查Content-Encoding响应标头,或将该字节序列的开头写入文件来验证这一点,如果您使用的是类似Unix的平台,请使用file实用程序检查其类型:

>>> data =  '\x1f\x8b\x08\x00\x00\x00\x00'
>>> f = open('data.bin', 'w')
>>> f.write(data)
>>> f.close()
$ file data.bin
data.bin: gzip compressed data, last modified: Thu Jun 16 09:32:16 1994

你可以decode it yourself,但我建议放弃urllib requests模块,automatically decompresses it

import requests
response = requests.get(url)
print response.content