在写爬虫抓取网页时,通过下面代码可以将网页代码抓取回来,一般直接就是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),解压缩相关推荐

  1. python利用gzip压缩解压缩StringIO

    python利用gzip压缩解压缩StringIO When working with a data stream instead of a file, use the GzipFileclass d ...

  2. python制作解压工具_使用python制作一个解压缩软件

    python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip install zipfile os是 ...

  3. python编写一个软件-使用python制作一个解压缩软件

    python实现解压缩的重要模块就是――zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip install zipfile os是 ...

  4. Boost:gzip解压缩器

    Boost:gzip解压缩器 实现功能 C++实现代码 实现功能 对gz文件的gzip解压缩器 C++实现代码 #include <boost/iostreams/device/file.hpp ...

  5. python字符串成熟编码_python字符串转公式两种方法获取网页编码python版

    在web开发的时候我们经常会遇到网页抓取和分析,各种语言都可以完成这个功能.我喜欢用python实现,因为python提供了很多成熟的模块,可以很方便的实现网页抓取. 但是在抓取过程中会遇到编码的问题 ...

  6. python如何制作一个工程软件_使用python制作一个解压缩软件

    python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip install zipfile os是 ...

  7. 用Python创建gzip压缩文件

    用Python创建gzip压缩文件 准备把所有文章中的图片链接全部更改到二级域名上.因为数据量比较大,为了方便修改,先将数据库内容导出为数据库脚本文件(后缀名为.sql),直接批量替换后再通过phpM ...

  8. python如何制作一个工程软件_如何利用python制作一个解压缩软件-Go语言中文社区...

    如何利用python制作一个解压缩软件 python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip ...

  9. python处理gzip压缩的http数据 - XII - 博客大巴

    python处理gzip压缩的http数据 - XII - 博客大巴 python处理gzip压缩的http数据 - XII - 博客大巴 python处理gzip压缩的http数据 - [pytho ...

最新文章

  1. 美团悄悄进入企业早餐,其战略目的为高频带低频?
  2. BZOJ 1398: Vijos1382寻找主人 Necklace(最小表示法)
  3. openmp并行编程_OpenMP实现生产者消费者问题
  4. 【设计模式】五、单例模式(独一无二的对象)
  5. Github项目汇总
  6. mysql数据库运维_开源数据库MySQL DBA运维实战3
  7. paip.索引的种类以及实现attilax 总结
  8. MongoVUE破解方法记录
  9. 「镁客·请讲」柏境数字张飞飞:做CG方向的VR视频,创造艺术和品质兼具的内容...
  10. 6.1.3. Mentor: Design Not Just for Usability, but Learnability
  11. Java8增加功能--Effectively final 功能
  12. windows mysql 开启非3306端口
  13. ACM入门攻略(紫书入门,不间断更新)
  14. 职场人怎样提高说话技巧
  15. 40G MPO布线方案
  16. idea 谷歌浏览器配置 通过浏览器打开页面 open in brower
  17. 网站空间配置和域名解析怎么选择
  18. concurrent.futures 并发爬取 wos 的部分专利号和施引专利
  19. 【XLL API 函数】xlAbort
  20. android 图片质量,Android微信朋友圈图片不如 IOS的质量好

热门文章

  1. 如何让信息化工程监理走向繁荣!
  2. C++ | std::iota实现递增序列
  3. 关于餐饮行业环境污染现状的调研报告
  4. STM32HAL库——HAL_Delay()函数实现原理
  5. http访问K8s集群
  6. 算法设计与分析--最优二叉搜索树(Python)
  7. U-blox F9P、天宝BD982、UB4B0M三家主流GNSS板卡性能哪家强
  8. TextView之折叠显示
  9. 最简版本mysql安装_最简单的配置mysql免安装版本的方法
  10. Dreamweaver中关于HTML的快捷键