mitmproxy是一个支持HTTP和HTTPS,并带有控制台的抓包工具。
安装
mac下使用brew安装mitmproxy,会同时安装mitmdump和mitmweb两个组件。mitmdump是mitmporxy的命令行版本,mitmweb是一个基于web的mitmproxy接口。
1 | brew install mitmproxy |
终端启动mitmproxy以生成CA证书
1 | mitmproxy -p 8888 # ctrl+c关闭,默认端口是8080,可以使用-p指定端口 |
生成的证书放在根目录下的隐藏文件.mitmproxy

配置
电脑配置证书:
进入.mitmproxy文件夹,将mitmproxy-ca-cert.pem
拉到钥匙串访问中,点击选择“始终信任”
手机配置证书:
1、查看电脑的ip
1 | ifconfig en0 | grep inet |
2、设置手机http代理,修改服务器和端口(没有指定则为默认端口8080)
3、在手机浏览器中输入mitm.it
,选择对应的证书进行安装、认证
这样就基本配置完成了,整个过程跟charles的配置是类似的,接下来就能在终端监听手机端的数据了。
使用
对于数据抓取来说,可以通过charles、fiddler等抓包工具先找到数据接口,再通过mitmproxy来获取数据。
mitmdump可以运行脚本:
1 | mitmdump -p 8888 -s script.py |
脚本如下:
1 | # -*- coding:utf-8 -*- |
这里有两点需要注意的:
- mitmproxy需要python3.6及以上才能运行
- 例子来自崔庆才的《python3网络爬虫开发实战》,原例是将数据保存到mongodb,但是一直有错误,暂时还没解决