在写爬虫抓取网页时,通过下面代码可以将网页代码抓取回来,一般直接就是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. 华为计算产品备件查询助手
  3. PHP学习笔记二: 面向对象设计
  4. [转]深入理解 __doPostBack
  5. 【ArcGIS风暴】ArcGIS自定义坐标系统案例教程---以阿尔伯斯投影(Albers)为例
  6. 5 计算机组成原理第四章 指令系统
  7. python环境介绍_Python介绍以及Python环境搭建
  8. Python第七章-面向对象高级
  9. python软件下载-python下载_python免费下载[编程工具]-下载之家
  10. 关于“数据加载中。。。”类似功能的实现
  11. 农村三资管理平台app_鑫农三资app下载-鑫农三资app下载安卓版 v1.0.2_手机乐园
  12. 马哥linux35期,马哥Linux第五周
  13. android 解码 gif 时间,Android 平台实现Gif 图像解码并播放代码及组件
  14. RDDs, Spark Memory, and Execution
  15. 微信自定义分享链接内容,wx.updateAppMessageShareData、wx.updateTimelineShareData、wx.onMenuShareTimeline
  16. c# 从MySQL往sharpmap中加载矢量数据图层(一)
  17. syntaxerror:_解决SyntaxError:解析时出现意外的EOF
  18. Java毕业设计-电影售票管理系统
  19. 敏捷 | 【万字长文】 说透 如何学习敏捷开发流程和运用
  20. 你要记得那些大雨中为你撑伞的人,帮你挡住外来之物的人。。。——村上春树 2021.11.13日 早上11点

热门文章

  1. ae批量修改字体_批量修改文字样式字体AE脚本CreativeDojo Dojo Text Updater V1.0
  2. cisco路由器NAT地址转换
  3. 字符串匹配算法---BF及KMP
  4. 小白入门关联规则之子图模式的类Apriori方法和gSpan算法挖掘学习
  5. CRC校验原理及两种代码实现方法(c语言和labview实现)
  6. 【转】将图集切割成单个单个的图片
  7. 【毕业设计】深度学习OCR中文识别系统 - opencv python
  8. word 如何设置起始页码
  9. 身份证实名校验接口,身份证二要素核验接口,身份证查询API接口【零存储,数据直连】
  10. 桌面趣味软件——养鹅