urllib2.urlopen处理gzip数据

urllib2.urlopen处理gzip数据 | yanghao's blog

urllib2.urlopen处理gzip数据

某些网站不管的请求头部带不带

Accept-Encoding:gzip

他都返回gzip压缩过的内容,也就是返回的头部都带有

Content-Encoding:gzip

对于这种网站在使用urllib2.urlopen获取数据时候由于urlopen不会自动处理gzip,得到的都是乱码,让人难以看懂的内容

对付这种情况就需要我们单独处理

f = urllib2.urlopen(url)
headers = f.info()
rawdata = f.read()
if ('Content-Encoding' in headers and headers['Content-Encoding']) or \
    ('content-encoding' in headers and headers['content-encoding']):
    import gzip
    import StringIO
    data = StringIO.StringIO(rawdata)
    gz = gzip.GzipFile(fileobj=data)
    rawdata = gz.read()
    gz.close()

This entry was posted in Python and tagged urllib2. Bookmark the permalink.

发表评论

posted on 2012-03-19 00:18  lexus 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lexus/archive/2012/03/19/2405385.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值