各位绅士们,之前小帅b就有给大家介绍了抓包工具,比如Fiddler、mitmproxy。
后来发现挺多人对 Fiddler 的使用体验感到抓狂的,时不时就有人问我为啥代理了 Fiddler 之后,手机就他妈的无法上网了呢?为啥 Https 总是上不去?
我也总是只能这么说:要不您再多折腾下,多配置一下,多重启几次看看?
这总有一种让我产生一种 “都把我肚子搞大了你说不关我事” 的愧疚感。
这样的愧疚感还不止一次,比如说公众号之前写的一些爬虫的实战教程,就是一顿花里胡哨的演示,当时可觉得厉害了,可后来人家把一些页面的请求规则给改了,所以你现在再去运行那些代码,有些就会报错,然后就有人来找我说,这代码有问题啊靠。
dnmd,我又不叫啊靠...
我只能说:要不您再解析一下页面的请求规则,改完了顺便给我提个 PR?
你看,这又让我产生了些许 “你把我肚子搞大了还踹了我一脚说孩子以后归你” 的愧疚感。
我又不可能花大把时间在线性感远程给你跳钢管舞调BUG,不过话说来也是有些许无奈的,这锅,甩到我这里来我也只能拿它来煎两个鸡蛋,一个蘸着酱油一个蘸着芥末吃...
咦,我好像特么扯远了。
如果你觉得Fiddler垃圾,不好用,配置麻烦,那可以试试 Charles 或者 mitmproxy,你说我就偏不,那我能咋办呢?你这个任性的小幺鸡...
今天就再给你分享最后一个抓包工具,以后谁在问我 Fiddler 的垃圾配置问题,我就把这篇的链接甩给他,顺便告诉他:天涯何处无芳草,何必单恋 Fiddler?
恩,今天要给你分享的就是阿里开源的抓包工具,叫做 AnyProxy,这名字听起来就挺屌,不是么?
由于这玩意是基于 Node.js 开发的,所以你要安装它之前,先在你的电脑把 Node 给装了,安装完之后使用 npm 去下载一下:
npm install -g anyproxy
安装完毕之后,你就可以在你的终端输入 anyproxy 来启动它了:
这时候它会监听 8001 端口,你代理的时候设置 8001 端口它就可以抓取你的上网数据了,可以在你的浏览器输入 127.0.0.1:8002 来访问你的请求数据:
比如你要抓取你手机上的访问数据,那么就在手机的 WIFI 那设置一下代理,先看下你电脑的 ip 地址:
然后在手机上设置代理的时候把 ip 地址和端口带上就可以了:
这时候在手机上访问百度就可以看到这样的请求数据:
不过现在的它只能抓取 Http 数据,想要抓取 Https 数据就给你的手机装上证书,很简单,输入你的电脑端的 ip + 端口 + 生成的证书文件,比如我这就是:
http://192.168.1.104:8001/fetchCrtFile
接着手机允许下载证书之后,在设置通用里面安装和信任就可以使用 Https 了:
这时候在手机上的所有 Https 请求就可以被抓取到了:
和 mitmproxy 一样,它还可以代理 websocket 等操作:
具体可以查看这个文档:https://anyproxy.io
ok,以上,我选择使用mitmproxy,你呢?
关注我
学习 Python 没烦恼