网页数据压缩(python deflate gzip),解压缩
在写爬虫抓取网页时,通过下面代码可以将网页代码抓取回来,一般直接就是HTML的相关网页代码。
data = urllib2.urlopen(url).read()
但有时,返回的是一些看不懂的数据。
这是通过Fiddler抓取回来的数据,其实在上面这个截图中就可以看到,这个数据是被encoded过的,点击Response body is encoded.Click to decode.即可解密:
deocde后,就可以看到HTML代码:
其实,这些数据是被压缩过的,而网页压缩一般有2种方式:
deflate 和 gzip,但实际上deflate已经比较过时了。
在通过爬虫抓取后,需要对数据进行解压缩,才能看到相应的网页代码,这时,可以通过下面的python代码进行解压缩:
import urllib2
from gzip import GzipFile
from StringIO import StringIO
import zlibdef loadData(url):request = urllib2.Request(url)request.add_header('Accept-encoding', 'gzip,deflate')response = urllib2.urlopen(request)content = response.read()encoding = response.info().get('Content-Encoding')if encoding == 'gzip':content = gzip(content)elif encoding == 'deflate':content = deflate(content)return contentdef gzip(data):buf = StringIO(data)f = gzip.GzipFile(fileobj=buf)return f.read()def deflate(data):try:return zlib.decompress(data, -zlib.MAX_WBITS)except zlib.error:return zlib.decompress(data)def main():url = "http://www.xxx.com/"content = loadData(url)print contentif __name__ == '__main__':main()
网页数据压缩(python deflate gzip),解压缩相关推荐
- python利用gzip压缩解压缩StringIO
python利用gzip压缩解压缩StringIO When working with a data stream instead of a file, use the GzipFileclass d ...
- python制作解压工具_使用python制作一个解压缩软件
python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip install zipfile os是 ...
- python编写一个软件-使用python制作一个解压缩软件
python实现解压缩的重要模块就是――zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip install zipfile os是 ...
- Boost:gzip解压缩器
Boost:gzip解压缩器 实现功能 C++实现代码 实现功能 对gz文件的gzip解压缩器 C++实现代码 #include <boost/iostreams/device/file.hpp ...
- python字符串成熟编码_python字符串转公式两种方法获取网页编码python版
在web开发的时候我们经常会遇到网页抓取和分析,各种语言都可以完成这个功能.我喜欢用python实现,因为python提供了很多成熟的模块,可以很方便的实现网页抓取. 但是在抓取过程中会遇到编码的问题 ...
- python如何制作一个工程软件_使用python制作一个解压缩软件
python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip install zipfile os是 ...
- 用Python创建gzip压缩文件
用Python创建gzip压缩文件 准备把所有文章中的图片链接全部更改到二级域名上.因为数据量比较大,为了方便修改,先将数据库内容导出为数据库脚本文件(后缀名为.sql),直接批量替换后再通过phpM ...
- python如何制作一个工程软件_如何利用python制作一个解压缩软件-Go语言中文社区...
如何利用python制作一个解压缩软件 python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip ...
- python处理gzip压缩的http数据 - XII - 博客大巴
python处理gzip压缩的http数据 - XII - 博客大巴 python处理gzip压缩的http数据 - XII - 博客大巴 python处理gzip压缩的http数据 - [pytho ...
最新文章
- 美团悄悄进入企业早餐,其战略目的为高频带低频?
- BZOJ 1398: Vijos1382寻找主人 Necklace(最小表示法)
- openmp并行编程_OpenMP实现生产者消费者问题
- 【设计模式】五、单例模式(独一无二的对象)
- Github项目汇总
- mysql数据库运维_开源数据库MySQL DBA运维实战3
- paip.索引的种类以及实现attilax 总结
- MongoVUE破解方法记录
- 「镁客·请讲」柏境数字张飞飞:做CG方向的VR视频,创造艺术和品质兼具的内容...
- 6.1.3. Mentor: Design Not Just for Usability, but Learnability
- Java8增加功能--Effectively final 功能
- windows mysql 开启非3306端口
- ACM入门攻略(紫书入门,不间断更新)
- 职场人怎样提高说话技巧
- 40G MPO布线方案
- idea 谷歌浏览器配置 通过浏览器打开页面 open in brower
- 网站空间配置和域名解析怎么选择
- concurrent.futures 并发爬取 wos 的部分专利号和施引专利
- 【XLL API 函数】xlAbort
- android 图片质量,Android微信朋友圈图片不如 IOS的质量好