mitmproxy介绍
具体介绍看官方,这里简单介绍,能够以类似抓包工具原理,以代理方式拦截指定数据包实现爬虫效果。
安装:
pip install mitmproxy
启动命令三个分别 mitmproxy、mitmdump、mitmweb ,功能大致一样只是启动方式不一样。
mitmproxy 命令不支持在 windows 系统中运行
演示:mitmweb
控制台执行:mitmweb命令,其中http://127.0.0.1:8081互交界面没有自动打开手动浏览器打开
下面http://*:8080代表代理端口为8080,端口也是可以自定义的:mitmweb -p 8081
设置代理抓包其实和Fiddler没啥区别,个人习惯还是Fiddler抓包然后,拦截脚本用mitmdump爬取数据。
手机设置代理抓包:
查看本地代理做所在ip 命令行:ipconfig
抓包结果如下:
不要急如果你抓不到包或者提示证书错误之类可以试试安装下证书。
证书下载地址:http://mitm.it/
还是很齐全的。
现在开始编写拦截脚本
先分析需要的数据URL,我这里随便抓个抖音评论玩玩。
可以看到https://aweme.snssdk.com/aweme/v2/comment/list/?aweme_id=6992164359518670120省略号一堆参数。
代码如下:
import mitmproxy.http
from mitmproxy import ctx
def response(flow:mitmproxy.http.HTTPFlow):
url = 'aweme/v2/comment/list/' #需要链接url包含字符串
if url in flow.request.url:
#print(flow.response.text)
with open('res.txt','w',encoding='utf-8') as f:
f.write(flow.response.text) #注意这里是response服务器返回不是request请求。
print('拦截到指定url')
抓到的json数据结果如下:
配合UIAutomator2自动化就可以实现,拦截+自动化爬虫了。
本文只是简单介绍下工具,更多高级用法可以自行百度或者看官方文档。
QQ交流群:23440618
微信公众号:Python硕博联盟
本文含有隐藏内容,请 开通VIP 后查看