解压web服务器返回的gzip数据
2015-04-14 12:00
99 查看
#!/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
相关文章推荐
- C# 利用HttpWebRequest模拟登陆获取数据设置Accept-Encoding为gzip,deflate后返回的网页是乱码处理
- C# post数据时 出现如下错误: System.Net.WebException: 远程服务器返回错误: (417) Expectation Failed 的解决办法
- 获取一个网页数据返回的编码类型是gzip,解压后,网页中包含的中文字段变成了乱码,只需要把编码更改为BIG5 ,繁体字就正常显示了!
- Java Web服务器向Android客户端返回数据(服务器端)
- Android向Web服务器发送Post请求并返回数据
- 自己动手写web服务器四(web服务器是如何通过压缩数据,web服务器的gzip模块的实现)
- 自己动手写web服务器四(web服务器是如何通过压缩数据,web服务器的gzip模块的实现)
- 自己动手写web服务器四(web服务器是如何通过压缩数据,web服务器的gzip模块的实现)
- C# 模拟post数据提交时 出现如下错误: System.Net.WebException: 远程服务器返回错误: (417) Expectation Failed 的解决办法
- php curl采集,服务器gzip压缩返回数据怎么办
- HttpWebRequest抓取网页数据返回异常:远程服务器返回错误: (503) 服务器不可用
- [转]C# post数据时 出现如下错误: System.Net.WebException: 远程服务器返回错误: (417) Expectation Failed 的解决办法
- C++ Builder编写WinForm Post数据至Web服务器并得到返回数据
- C# post数据时 出现如下错误: System.Net.WebException: 远程服务器返回错误: (417) Expectation Failed 的解决办法
- (原创)如何让web页面产生服务器数据返回后仍然能够保留到用户输入的位置!
- C# post数据时 出现如下错误: System.Net.WebException: 远程服务器返回错误: (417) Expectation Failed 的解决办法
- HttpWebRequest抓取网页数据返回异常:远程服务器返回错误: (503) 服务器不可用
- Android向Web服务器发送Post请求并返回数据
- 解决服务器返回错误数据格式导致Json解析出错造成app崩溃
- 使用zlib实现gzip格式数据的压缩和解压