当前位置: 首页 > 后端技术 > Python

【爬虫0基础】爬虫基础使用:抓包工具

时间:2023-03-25 22:48:39 Python

大数据时代,各行各业对数据采集的需求越来越大,网络爬虫的使用也越来越广泛。越来越多的人开始在网上学习爬虫的技术,爬虫K哥发布了很多爬虫进阶和逆向的相关文章。为做到从易到难全面覆盖,特设专栏【0爬虫基础】帮助小白快速上手爬虫。这个问题针对抓包工具的使用。抓包工具概述抓包工具,顾名思义,就是抓取网络数据包信息的工具。抓包工具最初主要用于测试工作。使用抓包工具查看和分析网络数据包,定位数据传输中的问题。随着不断的发展,抓包工具的功能不断扩展,在网络数据传输过程中可以对抓取到的数据包进行重新发送、编辑、替换等操作。作为爬虫开发者,我们需要模拟用户真实请求获取数据,所以我们需要了解目标网站交互中的数据信息是如何传输的,以及详细的请求信息、传输信息、以及接待信息。因此,掌握每种抓包工具的使用是一项必备技能。常用抓包工具及其工作原理流行的抓包工具有很多,这里只介绍实际开发中最常用的抓包工具。常见的抓包工具分为两种:1.在应用层抓取HTTP/HTTPS协议包,通过中间代理拦截协议包,如Fiddler、Charles。以Fiddler为例,这种抓包工具通过代理某个端口来拦截通过该端口的通信协议,并对传输的数据进行解析显示,使用起来也非常简单。对于HTTP请求,数据传输是明文的,抓包工具可以直接看到数据包。但是HTTPS请求在HTTP的基础上多了一层SSL/TLS协议。数据传输采用双向加密。传输中的数据包需要密钥来解密。因此,即使抓包工具截获了数据包,也无法解析数据。所以Fiddler和Charles在使用前需要先安装证书。2、在传输层抓取TCP/UDP协议,在网卡链路层拦截数据包,如:Wireshark。F12DeveloperToolF12DeveloperTool是爬虫开发中最常用的工具。可以用来查看网页的HTML元素,调试网页,抓包等。以GoogleDeveloperTools为例,打开F12工具可以看到这个界面。该工具的顶部有一些功能选项。在实际开发中,我们会经常用到以下类型:元素:用于查看和修改HTML元素、修改CSS属性、查看样式、监听事件等。控制台(console):记录异常信息,执行JS代码源代码(Sources):查看网页源码,设置断点,本地替换,运行JS脚本Network(网络):监听请求资源这次我们主要介绍Network(网络)面板。关于网络面板,我们需要了解一些基本的功能按钮。从左到右共有六个选项:1.录制按钮:红色表示录制网络活动,并会继续监控本网页的网络活动,灰色表示停止录制。2.清除按钮:记录的网络活动将被清除。3.过滤按钮:可以过滤掉URL中包含输入信息的请求,也可以选择根据请求类型过滤。4.搜索按钮:可以搜索到所有包含输入信息的请求。5.保留日志:勾选时,页面重新加载时不会清除上次加载的请求信息,不勾选时,页面重新加载时自动清除上次加载的请求信息。建议勾选。6.禁用缓存:建议勾选。使用F12抓包和使用开发者工具抓包都非常简单,只需要进行简单的操作即可。1.打开F12开发者工具。2.打开目标网址。捕获操作可以完成。请求列表请求列表包含有关在与网站交互时请求的每个资源的信息。点击任意一个资源,数据信息主要分为5种:1.通用信息:通用信息中记录了请求URL、请求方法、请求状态码。通过大体信息,可以知道请求是否成功。2、响应头信息:响应头信息中记录了服务器响应的头信息。3、请求头信息:请求头信息记录了客户端发起请求时携带的头信息。4.Payload信息:记录请求时提交的数据。5、响应信息:记录服务器的响应信息。F12开发人员工具功能强大且易于使用。但也有很大的缺点:容易被网站检测到,网站可以检测到用户是否打开了F12,对开发者后续的调试造成干扰。数据自动清除。为了减少资源信息在浏览器中的缓存,当资源被第二次请求时,第一次响应的信息会被清除。所以在爬虫开发中,会用到更强大的抓包工具。Fiddler的安装与使用下载与安装您可以在Fiddler官网下载Fiddler经典版,下载时需要提交您的邮箱地址等信息。安装过程很简单,这里就不介绍了。证书安装完成后,在安装目录下找到fiddler.exe并运行。上面提到Fiddler在使用前需要安装证书,否则无法抓取HTTPS包。安装方法:Tools->Options->HTTPS勾选以上三个选项。单击Actions-TrustRootCertificate-Yes以信任该证书。将证书导出到桌面,打开谷歌浏览器-设置-安全-管理设备证书,将导出的证书导入浏览器。PanelFiddler内置了很多强大的功能,这里只介绍基本使用和常用功能。基本用法:当我们需要抓取某个网站时,只需要打开Fiddler工具,观察状态栏中的Capturing是否存在即可。如果存在,则表示正在录制会话。选择所有流程以捕获所有流程会话。打开网站后,Fiddler会自动记录每一个session信息。Fiddler捕获的每个请求包都记录在session列表中,包括:number(按请求顺序编号)、HOST(请求主机名)、URL、Content-Type(响应数据类型)、Result(响应状态码)、Protocol(请求协议)、Body(字节数)、Caching(可缓存的信息)、Process(发起请求的进程)、Comment(注释)、Custom(注释)。请求和响应的详细信息记录在请求信息栏和响应信息栏中。功能:AutoResponder(响应替换):通常在逆向开发中,一些网站的加密算法代码被动态更改或高度混淆,可能会在某段代码中检测到F12,通过各种手段干扰我们对网站的调试。在这种情况下,我们可以使用AutoResponder功能。AutoResponder可以拦截目标请求,修改目标请求的响应内容。使用AutoResponder,我们可以对干扰我们调试的代码文件进行修改调整,方便后续调试。将要修改的请求拖入AutoResponder,勾选Enablerules->AddRule,点击RuleEditor框第二栏,向下滑动到底部,选择Findafile,选择要替换的文件,Save,保存并保存后刷新发现目标请求被替换。重发:选择要重发的请求,点击工具栏中的重播。模拟请求:点击工具栏中的Composer,输入目标URL,请求头,选择请求方式,点击Execute发起模拟请求。Charles的使用Charles和Fiddler的功能类似,但是Fiddler经典版不支持mac,Charles支持全系统,所以Charles在mac系统中是Fiddler的替代品。所以简单介绍一下。从Charles官网下载安装对应版本进行安装。配置和安装证书:进入Charles界面,点击Help->SLLProxying->InstallCharlesRootCertificate->安装证书->LocalComputer->放入受信任的根证书颁发机构存储区->完成设置SSL代理:Proxy->ProxySettings->勾选以下选项Proxy->SSLProxyingSettings使用Charles抓包的方式和Fiddler一样。打开目标网站,Charles会自动抓取请求。单击“停止录制”停止抓包。PanelCharles面板和Fiddler有些不同,可以看到抓取的数据也更加详细。Charles有两种界面方式,可以选择Sequence,更接近于Filder。FunctionFilter根据关键字过滤请求并重新发送选定的请求。单击上面的Repeatselectedrequests以重新发送响应。替换效果与Filder的AutoResponder一致。右键响应替换请求,选择MapLocal,在Local路径下选择替换文件。能。结语上面提到的三个工具分别是F12开发者工具、Fiddler、Charles。这三个工具可以解决一些爬虫正常工作中的抓包需求。但是随着爬虫的不断发展,反爬虫的措施也在不断的增加。例如,近年来TLS指纹检测逐渐应用到反爬虫中,它可以在服务端与客户端建立连接时检测客户端是否为爬虫程序。通过Fiddler、Charlse等抓包工具,无法看到建立TCP连接时传输了哪些信息,也无从知道服务器是否可能检测到TLS指纹信息。因此,需要更强大的抓包工具,如Wireshark。因此,爬虫开发者在提升自身水平的同时,也需要掌握更强大的工具,才能更好的解决问题。