Fiddler 是一个使用 C# 编写的 http 抓包工具。它使用灵活,功能强大,支持众多的 http 调试任务,是 web、移动应用的开发调试利器。
我很早之前的一篇文章 Fiddler抓取数据,20行代码赚500块,凑巧帮那位朋友解决了他的需求。隔了这么久又有人找我抓公众号数据。今天就分享一下我是如何使用 Fiddler 工具的。
Fiddler下载地址 :https://www.telerik.com/fiddler
访问链接,进入网站首页,如下图
点击下载,然后会跳到一个问卷页面,填写信息可以下载了。双击下载好的安装程序,点击“下一步”就可安装。
两个设置
- 打开
fiddler,点击工具菜单Tools->optins..->HTTPS页签,修改如下内容:
- 打开浏览器
Internet 选项->连接->局域网设置,弹出如下页面,这里主要添加一下本地代理的IP地址和端口。
过滤请求
选中 Fiddler 中一条记录,右键 Filter Now,然后选择 Hide 'xxx'即可进行过滤。
fiddler 配置
打开 fiddler,点击工具菜单Tools->optins..->Connections 页签,勾选 Allow remote computers to conect 即可,意思是允许接收来自远程客户端的连接。
手机配置
- 查看服务IP地址
在
cmd窗口输入ipconfig /all查看网络信息,获取当前电脑的IP地址,如下图:
-
安装证书 在手机浏览器访问 192.168.1.105:8888,手机上下载
Fiddler证书,如下图:苹果手机信任证书,
设置->通用->描述文件中,选中证书,添加信任即可。 -
wifi配置代理 打开手机wifi设置,进入配置代理,这里主要添加服务器、端口这两个信息,点击保存即可。如下图
数据抓取
在手机上做任何操作,电脑端的 Fiddler都显示对应操作的请求,如下图:
上面哪些配置都是基础,接下来才是重头戏。Fiddler的强大之处在于,它可以修改请求参数,响应数据,根据需要自定义规则。OnBeforeRequest 和 OnBeforeResponse 最常用的两个方法。点击Fiddler 菜单 Rules->Customize Rules...就可以打开脚本工具了,这里的脚本支持常用的 js 语法。
OnBeforeRequest
意思是在请求之前可以做的事情。这里实现的功能是将网站请求头信息写入本地文件。代码如下:
if (oSession.uriContains("mobile/wx/product/"))
{
var fso;
var file;
fileName = fileName + "_" + ucp;
fileName = fileName.replace(/\*/g,"");
var filePath="C:\\mntListen\\" + fileName + ".txt";
fso = new ActiveXObject("Scripting.FileSystemObject");
file = fso.OpenTextFile(filePath,2 ,true, false);
file.writeLine(" " + oSession.oRequest.headers);
file.close();
}注:磁盘对应位置如果没有文件路径,需要提交手动创建。
OnBeforeResponse
意思是在报文响应前可以做的事情。这里我的需求是对网站过滤,修改它的响应报文。
if (oSession.uriContains("mobile/wx/detail/v2"))
{
var body = oSession.GetResponseBodyAsString();
body = body.replace(/INVALID/g,"VALID");
body = body.replace(/title/g,"title1");
body = body.replace(/name/g,"title");
oSession.utilSetResponseBody(body);
file.close();
}上面的这段代码的意思是,当响应 url 链接包含 mobile/wx/detail/v2,进行内容替换。
查看 Fiddler 手册
打开 Fiddler 工具,右侧有常用对象的使用方法,可快速查阅。
花了差不多两天时间,终于帮那位朋友解决了他的问题,还是挺有成就感的!中间也有想放弃的时候,最终和朋友的多次沟通,彻底理解需求后,才大功告成。最后我得出一个结论:在做项目开发时,首先需要理解客户需求,才能针对需求寻找解决方案。如果你也在使用 Fiddler 工具的遇到问题,我们一起讨论哈!
- fiddler抓包详解 :https://www.jianshu.com/p/1c57d8d1ad99












