☞ ░ 前往老猿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. 导入相关模块:

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

  1. python 模拟浏览器selenium_浅谈python爬虫使用Selenium模拟浏览器行为

    前几天有位微信读者问我一个爬虫的问题,就是在爬去百度贴吧首页的热门动态下面的图片的时候,爬取的图片总是爬取不完整,比首页看到的少.原因他也大概分析了下,就是后面的图片是动态加载的.他的问题就是这部分动 ...

  2. Java中模拟浏览器访问网页(三)

    Java中模拟浏览器访问网页(三) 转载:https://blog.csdn.net/qq122627018/article/details/51473150 一.前言 看完上一节中浏览器访问网页的行 ...

  3. python 模拟浏览器操作_python 使用 mechanize 模拟浏览器访问网页

    知道如何快速在命令行或者python脚本中实例化一个浏览器通常是非常有用的. 每次我需要做任何关于web的自动任务时,我都使用这段python代码去模拟一个浏览器. import mechanize ...

  4. python 模拟浏览器下载文件-python爬虫:使用Selenium模拟浏览器行为

    前几天有位微信读者问我一个爬虫的问题,就是在爬去百度贴吧首页的热门动态下面的图片的时候,爬取的图片总是爬取不完整,比首页看到的少.原因他也大概分析了下,就是后面的图片是动态加载的.他的问题就是这部分动 ...

  5. python爬虫:Selenium模拟浏览器爬取淘宝商品信息

    1.数据提取前期网页分析 分析:淘宝网页数据也是通过Ajax技术获取的,但是淘宝的API接口参数比较复杂,可能包含加密密匙等参数:所以,想要通过自己构造API接口获取完整网页信息很难实现(可能只有部分 ...

  6. Python爬虫入门:爬取某个网页的小说内容

    导入必要的包 import requests import re 要爬的网页 url = 'http://www.shujy.com/5200/244309/' 模拟浏览器发送http请求 respo ...

  7. Python 模拟浏览器访问网页,Selenium库的详细使用

    (一)Selenium基础 入门教程:Selenium官网教程 1.Selenium简介 Selenium是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome.Firefox.Safar ...

  8. python爬虫入门教程:爬取网页图片

    在现在这个信息爆炸的时代,要想高效的获取数据,爬虫是非常好用的.而用python做爬虫也十分简单方便,下面通过一个简单的小爬虫程序来看一看写爬虫的基本过程: 准备工作 语言:python IDE:py ...

  9. python爬虫(20)使用真实浏览器打开网页的两种方法

    1.使用系统自带库  os 这种方法的优点是,任何浏览器都能够使用, 缺点不能自如的打开一个又一个的网页 import os os.system('"C:/Program Files/Int ...

最新文章

  1. 算法了解:RCNN、SPP-Net、Fast-RCNN、Faster-RCNN
  2. WP8.1学习系列(第五章)——中心控件Hub或透视控件Pivot交互UX
  3. 【Azure Services Platform Step by Step-第14篇】使用Azure版的ASP.NET Application Providers
  4. Interview:算法岗位面试—10.15上午—上海某公司算法岗位(偏图像算法,制造行业)技术面试考点之AI算法与实际场景结合产生商业价值的头脑风暴
  5. 关于SAP Spartacus在服务器端渲染模式和SAP Commerce Cloud API白名单的问题
  6. 宣布在日本地区正式发布 Windows Azure
  7. iOS开发之通知中心(NSNotificationCenter)
  8. Linux下安装ActiveMQ
  9. 雷达模糊函数 matlab_全场通用 | 雷达通信电子战,专业知识服务
  10. linux 0.11 源码学习(十四)
  11. python统计字符串中某个字符出现的次数_【面试题总结】1、统计字符串中某个字符出现的次数(2-Python实现)...
  12. 网易常用镜像及使用方式
  13. FPGA学习笔记-IP核-FIFO
  14. CSS 小技巧:如何保留 hover 的状态?
  15. 独秀日记:童道自然大夫山徒步
  16. Selenium4新特性-关联定位策略
  17. [阅读笔记]蘑菇书《Easy RL》
  18. 卡通可爱的门户网站登录表单页面
  19. 抓取百度地图瓦片(离线GIS)
  20. WordPress升级后,新版编辑器不能使用解决办法

热门文章

  1. M6:中文多模态预训练模型
  2. php0034 rankl,血清中Sclerostin、RANKL及OPG在老年股骨转子间骨折早期的含量改变及其临床意义...
  3. rte_eal_init之内存配置初始化以及大页初始化
  4. 近上亿人观看,李佳琦薇娅一夜带货破百亿,双十一预售直播再创记录。
  5. 【pytest】概述pytest——setup、teardown方法和conftest中的fixture用法,来执行测试用例的前置/后置条件语句操作
  6. python 桌面应用 h5_python前端之h5和css3
  7. Python_Monkeyrunner
  8. cesium之3D Tiles Next(下一代的3D Tiles)介绍
  9. React - React v18 的 批处理
  10. 如何在mac电脑上免费使用GitKraken