Python爬虫入门6:模拟浏览器访问网页的http报文体压缩传输

☞ ░ 前往老猿Python博客 https://blog.csdn.net/LaoYuanPython

一、引言

在前面章节中介绍了使用urllib包的request模块访问网页的方法。但上节特别说明http报文头Accept-Encoding最好不设置,否则服务端会根据该字段及服务端的情况采用对应方式压缩http报文体,如果爬虫应用没有解压支持会导致应用无法识别收到的响应报文体。本节简单介绍一下怎么处理响应报文体的压缩。

在爬虫爬取网页时,如果在请求头中传递了“‘Accept-Encoding’:‘gzip’”信息则服务器会采用gzip压缩报文,此时客户端必须支持对报文解压缩才能识别报文。解gzip压缩需要安装gzip模块,并在服务器返回http应答报文时判断服务端是否压缩了报文,如果压缩了就进行解压处理,否则直接读取。

二、 对HTTP响应报文的报文体支持压缩的爬虫处理步骤

要进行响应HTTP报文体的压缩,爬虫应用需要进行如下处理:

  1. 在请求报文的http报文头中的Accept-Encoding中设置能支持的压缩格式
  2. 读取响应报文后要判断响应报文头中的Content-Encoding的返回值的压缩格式
  3. 调用对应的解压方法进行报文体解压。

三、案例

  1. 导入相关模块:

猜你喜欢

转载自blog.csdn.net/LaoYuanPython/article/details/113068701