目录

  • 十六、Python爬虫的浏览器实现抓包
    • 16.1 控制台界面
      • 16.1.1 NetWork
      • 16.1.2 Sources
      • 16.1.3 Console
      • 16.1.4 Application
    • 16.2 数据包抓取
    • 16.3 看变化规律

十六、Python爬虫的浏览器实现抓包

几乎所有浏览器都提供了抓取数据包的功能,因为浏览器为抓包提供了一个专门的操作界面,因此这种抓包方式也被称为“控制台抓包”。

控制台抓包指的是利用浏览器开的发者调试工具抓取客户端与后端服务器交互的数据,它能够将网络传输中发送与接收的数据进行截获、重发和编辑。

控制台抓包非常适合于 POST 请求类型。我们知道,POST 请求使用 Form 表单向服务器提交数据,通过抓包可以获取 POST 请求体的数据以及相应参数,从而对响应内容进行分析。

16.1 控制台界面

关于开发者调试工具,您应该不会感到陌生,它除了有检查网页结构、元素构成的功能外,还有许多其他重要功能,比如抓取数据包。下面对如何抓包做重点介绍。

首先访问有道翻译网站,然后使用快捷键 F12 打开控制台,并找到Network选项卡,最后在有道翻译的输入框内输入“hello world”进行翻译,控制台主界面如下所示:

图 1:开发者调试工具

下面对上图 1 中控制台的常用选项做简单介绍:

16.1.1 NetWork

该选项主要用于抓取网络数据包,比如查看请求信息、响应信息等。它有三个常用选项卡,分别是 All、XHR、JS,其作用如下:

  • All : 抓取所有的网络数据包
  • XHR : 抓取所有异步加载的网络数据包
  • JS : 抓取所有的JS文件

16.1.2 Sources

该选项主要用于查看页面的 HTML 、JavaScript 、CSS 的源代码,除此之外,最重要的是它还可以调试 JS 源代码,可以给 JS 代码打断点调试,有助于分析爬虫程序中的一些参数。

16.1.3 Console

交互模式,能够执行 JavaScript 代码,一般用于对当前程序中 JS 代码进行测试,同时也可以查看 JavaScript 对象,或者调试日志、异常信息等。

16.1.4 Application

该选项用于查看、修改本地存储(Local Storage)以及会话存储(Session Stroage)等,同时它也可以用来查看 Cookie 信息。

Cookie 是网站服务器为了辨别用户身份,而储存在客户端浏览器上一段加密字符串。某些网站需要用户登录后才可以看到相应的数据。如果想要爬取此类网站的数据,就需要使用 Cookie 模拟用户登录。

16.2 数据包抓取

有道翻译采用了 JS 异步加载的方式获取翻译结果,并将该结果渲染到指定的输出框内。所谓异步加载,即不需要刷新页面,就可实现页面的局部渲染。对于这样数据,可以通过 NetWork 的中 XHR 选项来抓取数据包,并选择查看最后一个数据包,如下图 2 所示:

图2:抓取数据包

因为异步加载几乎是实时响应的,所以当您在输入框内输入“hello world”的过程中,每输出一个单词都会向服务器发送一次异步请求(若输出很慢时,一个字母都会发送一次请求),除非您事先将要查询的单词复制好,一次性粘贴到输入框内,只有这样才会得到一个数据包。因此,在这里选择了最后一个数据包进行分析。

接下来,对上图 2 中常用选项做简单介绍:Headers 用来描述整个请求信息,Preview 用来对响应内容进行预览,Response 用于查看响应内容,Cookies 用于查看客户端 Cookie 信息。

图3:预览响应内容

16.3 看变化规律

在有道翻译的输入框内多输入几个单词或者汉字,查看 Form Data 的变换规律。你会发现有些参数的值总是变化的,而有些参数值没有变化,比如 salt、sign、lts 总是变化的,而 bv 等参数是不变化的,而参数 i 代表用户输入的单词。如下所示:

i: hello world   #你输入的单词
salt: 16161405904876
sign: a6f9d57d297acc79f31b049e2a542519
lts: 1616140590487
bv: cda1e53e0c0eb8dd4002cefc117fa588

经过分析,最终您会发现如下规律:lts 代表毫秒时间戳;salt 和 lts 之间存在着某种关联,因为两者只有最后一个数字是不同的;而 sign 对应的值是一个加密后的字符串。在下一节我们将讲解如何破解有道翻译,将它作为 API 接口实现在线实时翻译。

抓包是分析请求、响应数据,以及监视 HTTP(S) 通信的常用方法,它能够帮助我们明确要请求的 URL、请求参数/参数值、Cookies,以及其他响应信息,这对于构建 POST 请求方法十分重要。

除了使用浏览器自带的调试工具外,您也可以使用 Fiddler 抓包工具,这款软件不仅适用于 Web 抓包,同样也适用于手机移动端抓包, 如果感兴趣的话可以点击了解Fiddler。

【Python】【进阶篇】十六、Python爬虫的浏览器实现抓包相关推荐

  1. [网络安全自学篇] 十六.Python攻防之弱口令、自定义字典生成及网站防护

    这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步.前文分享了Python网络攻防基础知识.Python多线程.C段扫描和数据库编程, ...

  2. python自学篇十六[pandas——数据分析 (二):读取文件+索引+NaNs处理方法]

    文章目录 概括:Numpy+Scipy+pandas+matplotlib pandas基本功能 一.数据文件读取/文本数据读取 1.pandas:数据文件读取 2.读取csv文件 3.读取txt文件 ...

  3. python学习笔记(十六)-Python多线程多进程

    一.线程&进程 对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程, ...

  4. 十六、爬虫实战,多线程抓取毛豆新车的数据

    前言: 对于爬虫还有一点小知识 fake_useragent的使用 fake_useragent第三方库,来实现随机请求头的设置: 安装 -> pip3 install fake-userage ...

  5. Python入门01:如何在 Chrome 浏览器轻松抓包

    python入门01:教你在 Chrome 浏览器轻松抓包 通过上一节我们知道了什么是爬虫,也知道了爬虫的具体流程 那么在我们要对某个网站进行爬取的时候,要对其数据进行分析 就要知道应该 怎么请求,就 ...

  6. python爬虫进阶案例,Python进阶(二十)-Python爬虫实例讲解

    #Python进阶(二十)-Python爬虫实例讲解 本篇博文主要讲解Python爬虫实例,重点包括爬虫技术架构,组成爬虫的关键模块:URL管理器.HTML下载器和HTML解析器. ##爬虫简单架构 ...

  7. python自学篇十[ 面向对象 (四) :王者荣耀小游戏+模拟一个简单的银行进行业务办理的类]

    python基础系列: python自学篇一[ Anaconda3安装 ] python自学篇二[ pycharm安装及使用 ] python自学篇三[ 判断语句if的使用 ] python自学篇四[ ...

  8. 三步解决C语言中struct字节对齐问题,Python进阶篇-struct字节对齐问题

    Python进阶篇-struct字节对齐问题 Python进阶篇-struct字节对齐问题 Python调用C的时候,会传递一些复杂的数据结构,例如结构体,这时候就会遇到各种各样字节对齐的问题.下边所 ...

  9. 二十六. Python基础(26)--类的内置特殊属性和方法

    二十六. Python基础(26)--类的内置特殊属性和方法 ● 知识框架 ● 类的内置方法/魔法方法案例1: 单例设计模式 # 类的魔法方法 # 案例1: 单例设计模式 class Teacher: ...

最新文章

  1. 电路实验1-电容充放电
  2. 支付宝现使用故障 官方:不影响用户资金和信息安全
  3. python pyyaml模块使用示例:读取yaml文件内容
  4. Flask-RESTful 快速入门
  5. CSS3 box-reflect 属性
  6. 诗和远方:无题(五十三)- 曾经写给一个妹子的诗
  7. python爬取qq音乐评论_爬虫:QQ音乐评论
  8. access注入大全
  9. 5. Document open() 方法
  10. asa清空配置_思科ASA防火墙基本配置
  11. python打印日历_python 打印日历
  12. 【OR】线性规划(2):极方向
  13. 决策树算法梳理(从原理到示例)
  14. oracle索引查询
  15. STM32F4使用FPU+DSP库进行FFT运算的测试过程一
  16. 深入理解类加载机制:拨开迷雾见真章
  17. Android:So库适配简单总结
  18. rx570显卡linux驱动,华硕EX-RX570-O4G驱动下载_ASUS EX-RX570-O4G显卡驱动下载-硬件之家...
  19. 如何看待 Facebook 上线支付功能?
  20. 【3Dprinter】3D模型导入到 切片软件Repetier注意事项

热门文章

  1. html5 光影效果,HTML5 WebGL GLSL 泛光着色效果
  2. 移植STM32F051,编译后遇到 #error Please select first the target STM32F0xx device used in your applicatio
  3. 复数数据结构的定义和实现
  4. JavaSE——单元测试、反射、注解、动态代理
  5. 8.Linux文件管理命令---head显示文件头部--tail显示文件尾部
  6. python标准库pygame_用python基础百行之内以pygame为库的俄罗斯方块代码
  7. 01-html标签图文详解(一)
  8. 淘宝新手开店不使用直通车,应该怎么去进行做呢?
  9. 关于arcgis栅格数据未定义问题
  10. 从一个视频摘录的感悟