乐趣区

关于python:0基础学爬虫爬虫基础之抓包工具的使用

大数据时代,各行各业对数据采集的需要日益增多,网络爬虫的使用也更为宽泛,越来越多的人开始学习网络爬虫这项技术,K 哥爬虫此前曾经推出不少爬虫进阶、逆向相干文章,为实现从易到难全方位笼罩,特设【0 根底学爬虫】专栏,帮忙小白疾速入门爬虫,本期为抓包工具的应用。

抓包工具概述

抓包工具,顾名思义,就是抓取网络数据包信息的工具。抓包工具最后次要利用于测试工作中,通过抓包工具查看网络数据包,并进行剖析,来定位数据传输中的问题。随着一直倒退,抓包工具的性能一直拓展,在网络数据传输中可能将获取到的数据包进行重发、编辑、替换等操作。作为爬虫开发者,咱们须要模仿用户的实在申请来获取数据,所以咱们须要理解指标网站交互中的数据信息是如何传输的,以及具体的申请信息、传递信息、接管信息。因而把握各抓包工具的应用是一项必备的技能。

常见抓包工具及工作原理

目前风行的抓包工具备很多,这里只介绍理论开发中最为常见的。
常见的抓包工具能够分为两种:

1、抓取应用层的 HTTP/HTTPS 协定包,通过中间人代理截取协定包,如:Fiddler,Charles。

以 Fiddler 为例,此类抓包工具通过代理某个端口,拦挡通过该端口的通信协议,并对传输数据进行解析展现,应用也起来非常简单。对于 HTTP 申请,数据传输都是明文,抓包工具能够间接看到数据报文。但 HTTPS 申请在 HTTP 根底上多了一层 SSL/TLS 协定,在数据传输中采纳了双向加密,对于传输中的数据包须要密钥来进行解密,因而抓包工具即便拦挡到了数据包,也无奈对数据进行解析。因而 Fiddler、Charles 在应用前须要装置证书。

2、抓取传输层的 TCP/UDP 协定,在网卡的链路层截取数据包,如:Wireshark。

F12 开发者工具

F12 开发者工具是在爬虫开发中最常应用到的工具,它能够被用来查看网页 HTML 元素、调试网页、抓包等。

以谷歌开发者工具为例,关上 F12 工具能够看到此界面。

工具顶部有一些性能选项,在理论开发中,咱们会常常用到以下几种:

元素(Elements):用来查看、批改 HTML 元素,批改 CSS 属性,查看款式,监听事件等

控制台(console):记录异样信息,执行 JS 代码

源代码(Sources):查看网页源码、设置断点、本地替换、运行 JS 脚本

网络(Network):监听申请资源

本次次要介绍网络(Network)面板。

对于网络面板,咱们须要晓得一些根本的性能按钮。

从左到右有六个选项:

1. 录制按钮: 红色代表正在录制网络流动,会继续监听该网页的网络流动,灰色代表进行录制。

2. 革除按钮: 会将录制到的网络流动革除。

3. 过滤按钮: 能够筛选出 URL 中蕴含输出信息的申请,也能够抉择依据申请类型进行筛选。

4. 搜寻按钮: 能够搜寻出蕴含输出信息的所有申请。

5. 保留日志: 勾选时,当页面从新加载时不会清空上一次加载时的申请信息,未勾选时页面从新加载时会主动革除上一次加载时的申请信息。倡议勾选。

6. 停用缓存: 倡议勾选。

应用 F12 抓包

应用开发者工具进行抓包非常简略,只须要进行简略的操作。

1、关上 F12 开发者工具。

2、关上指标网址。

即可实现抓包操作。

申请列表

申请列表外面蕴含了与网站交互中每个申请资源的信息。

点开任意资源,数据信息次要分为 5 种:

1. 惯例信息: 惯例信息中记录了申请网址、申请办法、申请状态码,通过惯例信息能够理解申请是否胜利。

2. 响应头信息: 响应头信息中记录了服务端响应的头信息。

3. 申请头信息: 申请头信息中记录了客户端发动申请时携带的头信息。

4. 载荷信息: 记录了申请时提交的数据。

5. 响应信息: 记录了服务端的响应信息。

F12 开发者工具性能很弱小,应用起来也十分便捷。然而也存在着很大的弊病:

  1. 容易被网站检测,网站能够检测用户是否关上了 F12,烦扰开发者接下来的调试。
  2. 数据主动清空,浏览器为了缩小资源信息的缓存,当一个资源被二次申请时,第一次的响应信息将会被清空。

因而在爬虫开发中,会用到更为弱小的抓包工具。

Fiddler 的装置与应用

下载与装置

能够在 Fiddler 官网 下载 Fiddler 经典版,下载时须要提交邮箱等材料。

装置过程很简略,这里就不做介绍。

证书装置

装置实现后在装置目录中找到 fiddler.exe 运行。如上文所述,Fiddler 在应用前须要装置证书,否则无奈抓到 HTTPS 包。

装置办法:Tools->Options->HTTPS

勾选以上三个选项。点击 Actions-Trust Root Certificate-Yes,信赖证书。

导出证书到桌面,并关上谷歌浏览器 - 设置 - 平安 - 治理设施证书,将导出的证书导入到浏览器。

面板

Fiddler 内置了许多弱小的性能,这里只介绍根本用法与罕用性能。

根本用法:

当咱们须要对某个网站进行抓包时,只须要关上 Fiddler 工具,察看状态栏中的 Capturing 是否存在,存在则代表正在记录会话。抉择 All Processes 捕捉所有过程会话。关上网站后,Fiddler 会主动的记录每条会话信息,会话列表中记录了 Fiddler 抓到的每条申请数据包,蕴含:

编号(按申请程序编号)、HOST(申请主机名)、URL、Content-Type(响应数据类型)、Result(响应状态码)、Protocol(申请协定)、Body(字节数)、Caching(可缓存信息)、Process(发动申请的过程)、Comment(正文)、Custom(备注)。

申请信息栏和响应信息栏中记录了申请和响应时的详细信息。

性能:

AutoResponder(响应替换): 通常在逆向开发中,会遇到一些网站的加密算法代码是动态变化的或者通过了高度混同,也可能在某段代码中对 F12 进行了检测,通过各种伎俩烦扰咱们对网站进行调试。遇到这种状况,咱们就能够应用 AutoResponder 性能,AutoResponder 能够拦挡指标申请,将指标申请的响应内容进行批改。利用 AutoResponder,咱们能够将烦扰咱们调试的代码文件进行批改调整,不便之后的调试。

  1. 将想要批改的申请拖入 AutoResponder 中
  2. 勾选 Enable rules -> Add Rule
  3. 点击 Rule Editor 框的第二栏,滑倒最下,抉择 Find a file,抉择进行替换的文件
  4. Save 保留

保留实现后刷新就能够发现指标申请被替换了。

重发: 选中须要重发的申请,点击工具栏中的 Replay 即可。

模仿申请: 点击工具栏中的 Composer,输出指标网址、申请头,抉择申请形式,点击 Execute 即可发动一次模仿申请。

Charles 的应用

Charles 与 Fiddler 的性能大同小异,然而 Fiddler 经典版不反对 mac,Charles 反对全零碎,所以 Charles 算是 Fiddler 在 mac 零碎中的一个替代品。所以只做简略介绍。

下载与装置

在 Charles 官网 下载对应的版本进行装置。

配置

装置证书:进入 Charles 界面,点击 Help -> SLL Proxying -> Install Charles Root Certificate -> 装置证书 -> 本地计算机 -> 放入受信赖的根证书颁发机构存储 -> 实现

设置 SSL 代理:Proxy -> Proxy Settings -> 勾选如下选项

Proxy -> SSL Proxying Settings

应用

Charles 抓包形式与 Fiddler 统一,关上指标网站 Charles 会主动抓取申请,点击 Stop Recording 能够进行抓包。

面板

Charles 面板与 Fiddler 有些区别,能够看到抓到的数据也具体一些。Charles 有两种界面模式,能够抉择 Sequence,与 Fildder 比拟靠近。

性能

Filter 依据关键字筛选申请

重发 抉择申请,点击上方 Repeat selected requests 进行重发

响应替换 成果与 Fildder 的 AutoResponder 统一,右键须要进行响应替换的申请,抉择 Map Local,在 Local path 中抉择替换的文件即可。

结语

上文中讲到了 F12 开发者工具、Fiddler、Charles 这三款工具,失常爬虫工作中一些抓包需要这三款工具都能很好的解决,但随着爬虫的一直倒退,反爬虫措施也一直减少。如近年来 TLS 指纹检测逐步被利用到反爬虫中,在服务端与客户端建设连贯时就能够检测到客户端是否是爬虫程序。通过 Fiddler、Charlse 这类抓包工具无奈看到在建设 TCP 连贯时传输了哪些信息,无奈得悉服务端是否可能检测了 TLS 指纹信息,因而须要用到如 Wireshark 等更为弱小的抓包工具,所以爬虫开发者在晋升本身程度的同时也须要把握更为弱小的工具,能力更好的解决问题。

退出移动版