原文链接地址:「docker 实战篇」python 的 docker 爬虫技术 - mitmproxy 之安卓模拟器 mitmdump(11)
本节主要一个特别重要的组件, mitmproxy 中的 mitmdump, 为什么说它重要? 因为它可以跟 python 脚本进行交互, 是不是美滋滋!
如何进行交互
mitmdump 的启动
默认的端口是 8080
mitmdump
mitmdump 指定端口的启动
指定端口是 8889
mitmdump -p 8889
mitmdump 指定 python 程序
指定端口和 python 程序
mitmdump -p 8889 -s test.py
编写 python 程序
必须要有 def requet, 对于夜神模拟器的证书配置上次都说过了. 这次都不说了.
- from mitmproxy import ctx
- # 必须这么写有个 request, 有个 response
- def request(flow):
- # print(flow.request.headers)
- #ctx.log.info(str(flow.request.headers))
- #ctx.log.warn(str(flow.request.headers))
- ctx.log.error(str(flow.request.url))
- ctx.log.error(str(flow.request.method))
- ctx.log.error(str(flow.request.path))
- def response(flow):
- ctx.log.error(str(flow.response.status_code))
mitmproxy 按键
按键 | 说明 |
---|---|
q | 退出(相当于返回键,可一级一级返回) |
d | 删除当前(××× 箭头)指向的链接 |
D | 恢复刚才删除的请求 |
G | 跳到最新一个请求 |
g | 跳到第一个请求 |
C | 清空控制台(C 是大写) |
i | 可输入需要拦截的文件或者域名(逗号需要用 \ 来做转译,栗子:idig8.com) |
a | 放行请求 |
A | 放行所有请求 |
? | 查看界面帮助信息 |
^ v | 上下箭头移动光标 |
enter | 查看光标所在列的内容 |
tab 分别查看 | Request 和 Response 的详细信息 |
/ | 搜索 body 里的内容 |
esc | 退出编辑 |
e | 进入编辑模式 |
使用命令启动 mitmdump , 并将截获的数据保存到指定文件中
mitmdump -w outfile
使用指定命令截获的数据, 如指定处理脚本文件为 script.py.
mitmdump -s script.py
PS:mitmdump 其实不太复杂, 重要是写 python 脚本.
来源: http://www.bubuko.com/infodetail-3064102.html