Python爬虫教程

第一章: 初学乍练-Python快速入门

第二章: 初窥门径-从全局把握网络爬虫

第三章: 爬虫数据-网页与JSON

第四章: 爬虫核心-HTTP协议

第五章: 手到擒来-数据的抓包

第六章: 利刃出鞘-HTTP请求库

第七章: 尘埃落定-数据的解析

第八章: 逆向初探-JS逆向

第九章: 爬虫进阶-Selenium, 中间人拦截

第十章:斗转星移-常用的反爬策略及应对方法

首页 > Python爬虫教程 > 第五章: 手到擒来-数据的抓包 > 5.2节: 抓包神器FiddlerEverywhere

5.2节: 抓包神器FiddlerEverywhere

薯条老师 2021-03-01 10:53:48 394023 0

编辑 收藏

广州番禺Python爬虫小班周末班培训

第四期线下Python爬虫小班周末班已经开课了,授课详情请点击:http://chipscoco.com/?id=232

5.2.1 FiddlerEverywhere简介

FiddlerEverywhere是经典web调试工具Fiddler的升级版,我们在浏览器中访问https://www.telerik.com/fiddler,可看到关于FiddlerEverywhere的一段简介:

Fiddler Everywhere is a web debugging proxy for macOS, Windows, and Linux. Capture, inspect, monitor all HTTP(S) traffic  between your computer and the Internet, mock requests, and diagnose network issues. Fiddler Everywhere can be used for any browser, application, process.

大意为:FiddlerEverywhere是一个web调试代理工具,可用于macOS, Windows,Linux系统。使用FiddlerEverywhere可以抓取、检查、监听本机与互联网之间的HTTP(S)通信,还可用于模拟客户端请求,以及诊断网络问题。同学们在使用FiddlerEverywhere进行抓包时一定要搞清楚,它之所以能抓包,是因为其充当一个HTTP(S)代理,拦截了浏览器等客户端的HTTP(S)请求。

5.2.2 FiddlerEverywhere安装

打开页面https://www.telerik.com/fiddler,直接点击DOWNLOAD NOW进行下载:

1614567753(1).jpg 

将安装包下载到本地以后,可直接按默认配置进行安装,安装的细节不再赘述。安装成功以后,打开FiddlerEverywhere, 我们需要先注册一个账号 :

1614567781(1).jpg 

5.2.3 FiddlerEverywhere使用

使用FiddlerEverywhere抓包非常方便,在注册成功并登陆以后,FiddlerEverywhere会自动设置浏览器代理。登陆成功以后,我们在软件的视窗中可以立即看到所有截获的请求:

1614567812(1).jpg 

窗口中的Live Traffic按钮用来控制是否抓取网络请求,按钮滑至左边表示关闭,滑至右边则表示开启。点击表格列右端的竖虚线,会弹出一个Filter框,如下图所示:

1614567834(1).jpg 

Filter框中的第一个下拉菜单用来指定匹配方式,默认为Contains,表示筛选出包含查询表达式的请求。点击下拉菜单,还可以选择其它的匹配方式,例如Is equal to表示完全匹配,Stars with则用来进行前缀匹配。

 1614567862(1).jpg

 

选择好匹配方式以后,再输入需匹配的内容,如下图箭头所示:

1614567880(1).jpg 

 

输入框下面的下拉菜单用来指定多字段匹配方式,默认为And,表示必须同时匹配,Or表示只要满足其中一个查询条件就匹配成功。我们现在点击URL列中的竖虚线,来筛选出url包含chipscoco的所有请求:

1614567898(1).jpg 

 

点击Filter按钮以后,面板中仅出现url中包含chipscoco的网络请求:

1614567916.jpg 

筛选出网络请求以后,点击URL, 面板右侧会显示该请求与服务端的交互信息:

 1614567938(1).jpg

Request所在的面板会显示所有HTTP(S)的请求信息:请求头,请求参数,请求cookie。Response面板则显示服务端的响应信息:响应头,响应的cookie,响应body。有了这些信息以后,就可以开始抓包分析浏览器与HTTP服务端的交互过程。

5.2.4 FiddlerEverywhere抓包案例

在5.1.4节中讲到了如何分析chipscoco的登录接口参数。在本节中,我们以FiddlerEverywhere来抓包分析chipscoco的登录接口参数。请同学们按照以下步骤进行操作:

(1) 点击Method右侧的竖虚线,在弹出的Filter窗口中输入POST:

1614567969(1).jpg 

(2) 点击URL右侧的竖虚线,在弹出的Filter窗口中输入chipscoco:

1614567989(1).jpg 

(3) 登录chipscoco, 分析面板中的登录请求

登录成功以后,即可在窗口中看到浏览器发起的登录请求:

 1614568011(1).jpg

点击请求url,可以在Inspectors面板中找出登录接口的请求参数:

1614568029(1).jpg 

在找出了接口的请求参数以后,就可以尝试去破解站点的加密方式,然后再用Python脚本对请求进行模拟,即可实现自动登录,自动抓取。关于常用的加密方式,以及逆向破解的相关知识,薯条老师会在第八章中进行讲解。

5.2.5 FiddlerEverywhere配置手机端抓包

FiddlerEverywhere是以代理服务器的形式工作的,代理地址为127.0.0.1。点击软件的设置按钮,在Connections窗口中可以查看代理服务器监听的端口号。从下图可知,FiddlerEverywhere监听的端口号为8866。

1614568056(1).jpg 

FiddlerEverywhere在启动以后,会自动设置浏览器的代理。以谷歌浏览器为例,依次点击设置,高级,系统,可以看到下图所示的页面:

1614568071(1).jpg 

再点击计算机的代理设置,即可发现代理服务器的地址为127.0.0.1:8866:

1614568088(1).jpg 

配置手机端抓包,需保证手机和电脑在同一局域网。我们在抓包时,如果电脑和手机连的是同一个wifi,那么它们就是在同一个局域网的。在FiddlerEverywhere的设置窗口中,需要将Connections面板中的Allow remote computers to connect进行勾选:

 1614568106(1).jpg

配置成功以后,需要将手机的代理服务器配置为FiddlerEverywhere。以华为手机为例,依次点击设置-->WLAN-->长按已连接的WiFi-->修改网络-->勾选显示高级选项->代理,手动, 可看到下图所示的界面:

1614568126(1).jpg 

在服务器主机名中输入FiddlerEverywhere所在的主机的ip地址。进入windows命令行,执行ipconfig命令,可以查找主机的IP地址:

1614568146(1).jpg 

接下来再输入服务器端口号为8866,即可配置成功。其它类型的手机,也是类似的配置过程。如需抓取手机端的https包,需要安装Fiddler的根证书。

点击Fiddler的设置按钮,然后点击https,再分别点击Trust root certificate,Advanced Settings即可导出CA证书。将证书导出以后,再复制到手机中进行安装。

配置成功以后,就可以在电脑端的FiddlerEverywhere中抓取手机端的数据包。

1614568192(1).jpg 

5.2.6 知识要点

(1) FiddlerEverywhere之所以能抓包,是因为其充当一个HTTP(S)代理,拦截了浏览器等客户端的HTTP(S)请求。FiddlerEverywhere在启动以后,会自动设置浏览器的代理,我们在浏览器中可以查看已配置的HTTP代理信息。

(2) 配置手机端抓包,需要保证手机和 FiddlerEverywhere所在的主机在同一个局域网。如需抓取手机端的https数据包,需要在手机端安装FiddlerEverywhere的根证书。

5.2.7 高薪就业班

(1) Python后端工程师高薪就业班,月薪10K-15K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,免费领取课程大纲
(3) Java后端开发工程师高薪就业班,月薪10K-20K, 免费领取课程大纲
(4) Python大数据工程师就业班,月薪12K-25K,免费领取课程大纲

扫码免费领取学习资料:



欢迎 发表评论: