【python爬虫 系列】3.Fiddler使用教程

第三节:Fiddler使用教程
3.0前言
Fiddler是一个很好用的用c#编写的HTTP网络抓包工具,使用它的话,我们就不必再浏览器的开发者工具里分析页面了,可以在更加专业和智能化的Fiddler里面对页面参数进行请求调试。
它是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件),甚至修改请求的数据,实现请求的自动重定向,从而修改服务器里的数据。 Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。
3.1Fiddler 流程
客户端的所有请求都要经过Fiddler,然后转发到相应的服务器,反之,服务器的所用响应都会先经过Fiddler然后发送到客户端,它支持所有可以设置http代理为127.0.0.1:8888的浏览器和应用程序。
【python爬虫 系列】3.Fiddler使用教程

可以这么表达,Fidder 作为浏览器和服务器的“中间商”

3.2下载使用Fiddler
1)首先是它的下载地址,下载好之后直接安装就可以了。
https://www.telerik.com/download/fiddler
【python爬虫 系列】3.Fiddler使用教程
找到安装目录下的Fiddler启动后会看到如下页面
【python爬虫 系列】3.Fiddler使用教程

2)启动Fiddler
Fiddler一旦启动就会自动开始工作,我们此时打开浏览器随便点击几个页面就可看到Fiddler抓取了许多网络包。
Fiddler想要抓到数据包,要确保Capture Traffic是开启,在File –> Capture Traffic。开启后再左下角会有显示,当然也可以直接点击左下角的图标来关闭/开启抓包功能。
【python爬虫 系列】3.Fiddler使用教程
3)Fiddler讲解
选择tools里的options,进入coonections

端口设置一般为8888,当然也可以更改,要保证和浏览器一致
注意:Chrome 使用fiddler 代理
设置 高级 系统 打开代理设置 为lAN设置代理
端口可以自己设置,只需要Fiddler与chrome相同就可

【python爬虫 系列】3.Fiddler使用教程
【python爬虫 系列】3.Fiddler使用教程

四个选项卡分别为
抓取TFP(和邮件类似,现在用的很少),抓取远程(手机),本地客户端,服务器
(下面两个是默认,上面两个可选)

常用命令:
Replay 重新抓取
Remove all 清除所有
字段说明:
(左边):
名称 含义

#抓取HTTP Request的顺序
从1开始,以此递增
Result HTTP状态码
Protocol 请求使用的协议,如HTTP/HTTPS/FTP等
*Host 请求地址的主机名(域名)
*URL 请求资源的位置
*Body 该请求的大小
*Caching 请求的缓存过期时间或者缓存控制值
Content-Type 请求响应的类型
Process 发送此请求的进程:进程ID
Comments 允许用户为此回话添加备注
Custom 允许用户设置自定义值

Statistics 请求的性能数据分析
随意双击左侧的一个网络包,右侧的inspectors里就可以查看请求内容,与浏览器开发者选项卡中的内容相同。
【python爬虫 系列】3.Fiddler使用教程
这个页面是一些基本信息,包括各个操作的时间,访问经过的国家等内容
(一般不会用到。)

Inspectors是用于查看会话的内容,上半部分是请求的内容,下半部分是响应的内容,你可以选择展现的方式,常用的就是Raw,Json,Cookies等

Fiddler命令行:
【python爬虫 系列】3.Fiddler使用教程
你可以输入help获取官方文档了解fiddler的命令行使用方式,这里不再一一赘述。
3.3 Fiddler模拟场景
在Ruels里边可以模拟各种情景
1.请求之前进行登陆验证
2.对网页进行压缩,测试性能
3.模拟不同客户端的请求
4.模拟网速不同情况,测试页面容错性
5.禁用缓存,方便调试服务器静态资源
Rules:
【python爬虫 系列】3.Fiddler使用教程
Hide Image Requests :隐藏照片
Hide CONNECTs :隐藏握手
一般我们的都会把这两个打开,以过滤我们不需要的东西
Automatic Breakpoints :断点传输

Before: 请求前抓包
After: 请求后抓包
当然我们使用不多,多用于黑客方面

Customize Rules… :打卡配置java脚本文件,
你可以修改,比如自定义一个user-agents
Apply GZIP Encoding :压缩页面,以适应更好的性能
User-Agents :在其中你可以自己设定你得user-agents
【python爬虫 系列】3.Fiddler使用教程

Performance:
【python爬虫 系列】3.Fiddler使用教程
Simulate Modem Speeds:模拟网速慢的情况访问
Disable Caching:禁用缓存
3.4 Fiddler抓取https
对称加密:一把钥匙对应一把锁(http)
【python爬虫 系列】3.Fiddler使用教程
黑客可以在你开门时候复印一把副本钥匙,就可以轻松进你家了
服务器和客户端是同一私钥,只要中间人获取一个,就可以**内容,

非对称加密:公钥(服务器)主用于加密,私钥(个人)主用于解密
即使存在中间人,盗取了你的公钥,他也无法解密,不知道其中的内容是什么
【python爬虫 系列】3.Fiddler使用教程
可是这样还无法解决中间人截取服务器派发公钥被拦截的过程,如下图

第三方认证:(https)公钥之所以被掉包,就是因为浏览器不能确认是不是服务器发过来的公钥,本质是密码学问题
【python爬虫 系列】3.Fiddler使用教程
浏览器得到证书会直接在本地根证书进行比对寻找对于公钥解密签名,
之后再利用证书的签名生成规则进行匹配,如果不同就不能通过认证
这样即使中间人获取了公钥也是没用的
对于HTTPS网站的信息我们是无法查看的
【python爬虫 系列】3.Fiddler使用教程

不过我们可以通过伪造CA证书来欺骗浏览器和服务器,从而实现HTTPS解密,就是把Fiddler伪装成为一个HTTPS服务器,在真正的HTTPS服务器面前Fiddler又伪装成浏览器。
【python爬虫 系列】3.Fiddler使用教程
接下来点开
HTTPS选项卡,勾选Decrypt HTTPS
【python爬虫 系列】3.Fiddler使用教程

全部选是,之后再次访问HTTPS网站就可以抓包查看了。

3.5 Fiddler抓包手机APP
Fiddler在如图位置,或者可以在cmd中ipconfig找到自己的网卡IP)

【python爬虫 系列】3.Fiddler使用教程
【python爬虫 系列】3.Fiddler使用教程
打开你的手机,在手机设置里把手机的代理设置为电脑端的IP和端口,因为不同手机的设置环境不同,这里需要你自行百度,假设我们电脑地址为192.168.1.1,在手机配置好代理之后,打开手机浏览器,输入192.168.1.1:8888,会出现如下界面
【python爬虫 系列】3.Fiddler使用教程
点击最下边的
FiddlerRoot centificate,下载并且安装证书。
最后浏览手机APP百度,就可以在电脑端抓包了。

3.6 Fiddler编写request测试用
打开右侧边栏的composer
【python爬虫 系列】3.Fiddler使用教程
比如我们以访问百度页面为例,
【python爬虫 系列】3.Fiddler使用教程
执行execute就相当于就是一次get

【python爬虫 系列】3.Fiddler使用教程当然你也可以利用这个特性进行调参,如果返回了就可以去掉这个参数,否则就要留下这个参数,这样就能找出关键的参数,以减少url长度

3.7 其他工具
如postman(类似fiddler),jmeter(测压)