原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
原文链接地址:「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脚本。