文章目录
显示
作者:虚坏叔叔
博客:https://xuhss.com
早餐店不会开到晚上,想吃的人早就来了!?
mitmproxy抓包软件详解
讲解mumdump
,它的优势是可以和Python脚本交互,我们来演示一下如何进行交互。
一、安装mitmproxy
pip install mitmproxy -i https://pypi.douban.com/simple
pip install mitmproxy==5.0.1
二、mitmdump加载端口和python脚本
cmd启动mitmdump
mitmdump
如上提示的话就说明mitmdump
会监听8080
端口,由于我们要监听fiddler
的8889
端口,就需要修改如下:
mitmdump -p 8889
如何能让mitmdump
和Python
进行交互呢?
可以加一个-s参数,去指定交互的Python
文件,比如test.py
,:
mitmdump -p 8889 -s test.py
这个test.py
,需要自己编写,它有固定的格式。
在pycharm
中创建test.py
:
# 必须这么写 才能抓到数据包
def request(flow):
print(flow.request.headers)
此时,终端运行:
可以看到,加载了test.py这个脚本。
三、启动安卓模拟器用于抓包
一定要确保上节课设置为手动
代理,并且代理端口为8889
:
打开浏览器,访问:
httpbin.org/get
此时,可以看到这里有一个headers
,这里打印出来的就是我们想要获取的请求头
print(flow.request.headers)
四、通过日志的形式输出
这种方式可以更加明确的区分颜色
from mitmproxy import ctx
# 必须这么写 才能抓到数据包
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.headers))
命令行窗口将上一个捕获结束掉,然后通过mitmdump - p 8889 - s test.py
捕获,接着在模拟器上用浏览器再次访问网址
可以看到输出了3段
也可以获取到请求的url
:
from mitmproxy import ctx
# 必须这么写 才能抓到数据包
def request(flow):
#print(flow.request.headers)
ctx.log.error(str(flow.request.url))#url
ctx.log.error(str(flow.request.host))#主机名
ctx.log.error(str(flow.request.method))#请求方法
ctx.log.error(str(flow.request.path))#请求路径
可以看到输出了url
既然会有请求函数,那么也就有响应函数:
from mitmproxy import ctx
# 必须这么写 才能抓到数据包
def request(flow):
#print(flow.request.headers)
ctx.log.error(str(flow.request.url))
def response(flow):
ctx.log.error(str(flow.response.status_code))
命令行窗口将上一个捕获结束掉,然后通过mitmdump - p 8889 - s test.py
捕获,接着在模拟器上用浏览器再次访问网址
可以看到打印了状态200
也查看响应文字:
from mitmproxy import ctx
# 必须这么写 才能抓到数据包
def request(flow):
#print(flow.request.headers)
ctx.log.error(str(flow.request.url))
def response(flow):
ctx.log.error(str(flow.response.status_code))
ctx.log.error(str(flow.response.text))
所以我们可以通过这个和Python
脚本交互,可以将数据保存起来。
五、总结
- 本文介绍了Uiautomator2自动化抓取工具。
- 如果觉得文章对你有用处,记得
点赞
收藏
转发
一波哦,博主也支持为铁粉丝制作专属动态壁纸哦~
? 往期优质文章分享
? 优质教程分享 ?
- ?如果感觉文章看完了不过瘾,可以来我的其他 专栏 看一下哦~
- ?比如以下几个专栏:Python实战微信订餐小程序、Python量化交易实战、C++ QT实战类项目 和 算法学习专栏
- ?可以学习更多的关于C++/Python的相关内容哦!直接点击下面颜色字体就可以跳转啦!
学习路线指引(点击解锁) | 知识定位 | 人群定位 |
---|---|---|
? Python实战微信订餐小程序 ? | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |
?Python量化交易实战 ? | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
❤️ Python&C++混合编程❤️ | 难度偏高 | 分享学习Python C++混合编程知识! |
? 资料白嫖,温馨提示 ?
关注下面卡片即刻获取更多编程知识,包括各种语言学习资料,上千套PPT模板和各种游戏源码素材等等资料。更多内容可自行查看哦!