解压web服务器返回的gzip数据

#!/usr/bin/env python
import urllib2
import gzip
import binascii
from StringIO import StringIO
def gunziptxt(data):
    buf = StringIO(data)
    of =gzip.GzipFile(fileobj=buf,mode="rb")
    outdata=of.read()
    return outdata
url="http://127.0.0.1/index.html"
request=urllib2.Request(url,headers={'User-agent':"python urllib browser","Accept-Encoding":'gzip'})
try:
    response=urllib2.urlopen(request,timeout=5)
    data=response.read()
except:
    print "get %s response failed" %url
print "headers:\n",response.info()
if response.info()["content-encoding"] == 'gzip':
    print "http resonse is gzip"
    outdata=gunziptxt(data)
    lbuf=StringIO()
    with gzip.GzipFile(mode='wb',fileobj=lbuf) as inf:
        inf.write(data)
    gziplen=len(lbuf.getvalue())
    print "gzip %d and gunzip %d"%(gziplen,len(outdata))
else:
    print "http resonse is not gzip"
    outdata=data
print "http response:\n",outdata
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值