「docker实战篇」python的docker爬虫技术-mitmproxy之安卓模拟器mitmdump(11)

212 阅读2分钟

原创文章,欢迎转载。转载请注明:转载自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脚本。