Python使用urllib2请求Gzip压缩数据并解压的完整示例
本文详细介绍如何使用Python的urllib2库向服务器发起包含Accept-encoding: gzip头部的HTTP请求,获取压缩后的网页数据,并利用StringIO和gzip模块将其还原为原始内容。示例代码包含完整的请求构建、数据读取及解压写入流程,附带运行结果对比,适用于需要处理服务器压缩响应的Python开发场景。
Python请求与解压缩Gzip数据示例
本文通过一个具体实例,演示了如何在Python中向服务器请求压缩格式的数据,并对其进行解压缩处理。该方案可供相关开发者参考与借鉴。
主要实现向服务器请求压缩数据格式,并对获取的数据进行解压缩处理。
#!/usr/bin/env python
# encoding=utf-8
import urllib2, httplib
def writeFile(fname, data):
f = open(fname, "w")
f.write(data)
f.close()
if __name__ == '__main__':
httplib.HTTPConnection.debuglevel = 1
request = urllib2.Request('http://www.163.com/')
request.add_header('Accept-encoding', 'gzip') # 向服务器请求压缩数据
opener = urllib2.build_opener()
f = opener.open(request)
data = f.read() # 读取页面返回的数据
f.close()
print "压缩的数据长度为:%d" %len(data)
writeFile("a.html", data)
import StringIO, gzip
compressedstream = StringIO.StringIO(data)
gziper = gzip.GzipFile(fileobj=compressedstream)
data2 = gziper.read() # 读取解压缩后数据
print "解压缩后数据长度为:%d" %len(data2)
writeFile("aa.html", data2)
程序运行后的输出结果如下所示:
[zcm@python #25]$./del.py
压缩的数据长度为:100457
解压缩后数据长度为:358659
[zcm@python #26]$wc *.html
4556 16010 358659 aa.html
374 2197 100457 a.html
4930 18207 459116 总用量
[zcm@python #27]$
如需了解更多Python相关知识,建议参考本站相关专题,包括《Python文件与目录操作技巧汇总》、《Python文本文件操作技巧汇总》、《Python URL操作技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》以及《Python入门与进阶经典教程》。
希望上述内容能对您的Python编程实践提供有益帮助。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









