平时使用urllib2
下载一个页面的内容,然后使用beautifulsoup
解析后出现乱码,不管是换成utf8
或者gbk
编码来解码都不行。
这个问题可能是网页被压缩的原因
用浏览器调试工具查看下url应答包header中是否有Content-Encoding
为gzip
python可以使用gzip
库来解压
import gzip, StringIO
url = 'http://www.example.com'
response = urllib2.urlopen(url)
html = response.read()
if response.info().get('Content-Encoding') == 'gzip':
buf = StringIO.StringIO(html)
fd = gzip.GzipFile(fileobj=buf)
html = fd.read()
print html
更多内容:python常见问题总结