学会如何抓包,是爬虫的必备技能,甚至可以说,不会抓包就等同于不会爬虫。
那我们怎样抓包呢?如果直接抓取浏览器上的内容,可以直接使用开发者工具进行抓包,但有个局限,只能抓浏览器的,功能也没有多少。
还可以使用别的工具,比如 mitmproxy、charles,当然还有今天所说的 Fiddler 。今天要分享的就是如何使用fiddler进行抓包以及它的功能讲解。
01下载并安装fiddler,联系本站客服下载试用版本。
02.Fiddler工作原理以及优缺点
![1676453061532395.png 1676452133513224.png](/static/upload/image/20230215/1676453061532395.png)
如上图,Fiddler 作为一个代理,先是捕捉到客户端的 request 请求,然后再自己转发到服务器端,服务器接收到请求时,会返回一个响应 response ,Fiddler 还是会继续捕捉到服务器的响应请求,再来转发给客户端,简单来说, Fiddler 就是作为一个中间人。
优缺点:
只支持 http、https、ftp、webscoket 数据流等相关协议的捕捉,无法监测或修改其他数据流,如 SMTP、POP3 协议(邮箱相关的协议),无法处理请求和响应超过 2GB 的数据,还有就是只支持 windows 平台,如果想要支持 mac 的话,建议下载 charles ,不过很吃性能,在我机子上运行下那风扇就想起来了。
3.Fiddler 功能详解
3.1 如何进行抓包
1)先勾选允许抓取 https 流量
![1676453340112312.png 1.png](/static/upload/image/20230215/1676453340112312.png)
![1676453619101347.png 2.png](/static/upload/image/20230215/1676453619101347.png)
这个就是允许抓取 https 的流量。如果第一次使用,勾选之后会提示你安装一个证书,这个证书就是用来做中间人进行抓包的, Fiddler使用此证书来解密所捕捉到的包,再加密转发到相对应的服务器端或者客户端。
![1676453758140504.png 3.png](/static/upload/image/20230215/1676453758140504.png)
如果你还没有安装就点击 Yes 安装即可,如果没有弹出此窗口的也可以点击右上角的 actio 按钮的第一个选项也是可以弹出此个窗口的。
![1676453948139392.png 4.png](/static/upload/image/20230215/1676453948139392.png)
上面圈出来的是表示抓取哪一部分的流量。
from all processes:抓取所有进程的流量
from browsers only:只抓取浏览器的流量
from non-browsers only:不抓取浏览器的流量
from remote clients only:抓取远程的客户端,当需要抓取的是手机端的流量,就需要用到这个
2)接下来设置端口号
![1676453974205067.png 5.png](/static/upload/image/20230215/1676453974205067.png)
一般默认即可,这里我设置成了8889。
下面的那个 Allow remote computers to connect 是允许远程的客户端进行连接,如果抓取手机端的也需要勾选。
3)浏览器设置代理服务器
Fiddler 的设置完了,这时候还需要在你的浏览器上设置代理服务器才能进行抓取。
使用 Chrome 浏览器的可以直接使用 SwitchyOmega 插件进行修改即可,操作简单。
点击新增情景模式:
选择代理服务器,随后填写任意名字,这里我填写的是 Fiddler,点击创建即可。
然后填写以上内容,代理服务器为本机,端口号为上面在 Fiddler 设置的端口号,填写完在左下角点应用选项才算设置完毕。
设置完之后再在浏览器插件处点击该插件,然后选择该模式即可开始抓包。
设置完之后第一次打开可能是这样的:
![1676454146559650.png 6.png](/static/upload/image/20230215/1676454146559650.png)
关闭 Fiddler 再重新打开就可以了:
3.2 进行手机端抓包
手机端的抓包也是很容易的,先是设置好 Fiddler 的允许抓取远程客户端。
这时用手机连接wifi,然后长按修改网络(不同安卓手机不一样):
点击代理,然后点击手动:
主机名就写你电脑上的 ip 地址,查看 ip 地址可以在控制台上输入 ipconfig 即可:
由于我的电脑也是连接 wifi 的,所以 ip 地址对应的是 无线网络的那个,如果你的电脑是使用网线来进行上网的,那 ip 地址就是 以太网的那个。
填完之后还不能抓取,如果直接抓取会显示证书有问题。
我们也是需要安装证书才可以正常抓取的。那接下来安装证书。
手机浏览器输入 你的ip地址:端口号 进入网址下载证书,如 192.168.1.2:8888, 端口号还是之前在 Fiddler设置的那个:
![1676454263960033.png 7.png](/static/upload/image/20230215/1676454263960033.png)
点击上图箭头的网址进行下载即可,下载完毕之后点击安装即可。
如果你是 miui 系统的机子,就需要进入wifi 设置的界面进行安装:点击 高级设置 --> 安装证书 即可,期间需要密码验证或者设置密码之类的设置即可。
还有一个大坑,就是如果你的机子 是安卓 9 而是 miui 系统(其他系统没测试过)的话,安装了证书也是没用的,在进行抓包的时候还是会提示证书有问题。安卓 8 版本的我没有测试过,不过安卓 7 版本以下的估计都可以。
弄完了以上的东西就可以抓包了,如果设置完了,网络没了,还是那样子,第一次设置完需要重启下 Fiddler 软件就可以抓包了。
3.3 抓包内容的介绍
很明显左边的就是捕捉的请求和响应,右边的就是对应请求的详细信息,比如请求头,表单信息,比如上图下面箭头所指的就是表单信息。,如果这些信息看到的内容很少的话,可以直接点击下面的 View in Notepad 按钮就可以在笔记本中显示出来,非常方便。
左边每列代表的含义为:
![1676454297160669.png 8.png](/static/upload/image/20230215/1676454297160669.png)
左边第一列中每个图片代表的含义为:
![1676454457199152.png 9.png](/static/upload/image/20230215/1676454457199152.png)
由于篇幅问题,还有一些功能就暂时不介绍了,等以后用到的时候会说哈,比如断点调试之类的
上一条:测试工具Fiddler基础介绍
下一条:无法在 Fiddler Classic 中捕获 Android 流量