app小程序手机端Python爬虫实战14-mitmproxy抓包软件详解

uiautomator 虚幻 244℃ 0评论

作者:虚坏叔叔
博客:https://xuhss.com

早餐店不会开到晚上,想吃的人早就来了!?

mitmproxy抓包软件详解

32d47d496ad34363a438e275e1b3eb71 - app小程序手机端Python爬虫实战14-mitmproxy抓包软件详解

讲解mumdump,它的优势是可以和Python脚本交互,我们来演示一下如何进行交互。

一、安装mitmproxy

pip install mitmproxy -i https://pypi.douban.com/simple
pip install mitmproxy==5.0.1

二、mitmdump加载端口和python脚本

cmd启动mitmdump

mitmdump

6b5d929be90048a68d81f2181a46d893 - app小程序手机端Python爬虫实战14-mitmproxy抓包软件详解

如上提示的话就说明mitmdump会监听8080端口,由于我们要监听fiddler8889端口,就需要修改如下:

mitmdump -p 8889

9e8cde8d09b040c9a27eb7ad87e24faa - app小程序手机端Python爬虫实战14-mitmproxy抓包软件详解

如何能让mitmdumpPython进行交互呢?

可以加一个-s参数,去指定交互的Python文件,比如test.py,:

mitmdump -p 8889 -s test.py

4621bc0cbdd040369ca8adc8e76e10d1 - app小程序手机端Python爬虫实战14-mitmproxy抓包软件详解

这个test.py,需要自己编写,它有固定的格式。

pycharm中创建test.py

# 必须这么写 才能抓到数据包
def request(flow):
    print(flow.request.headers)

此时,终端运行:

f38a28f22edf4840be91a849e90ddde1 - app小程序手机端Python爬虫实战14-mitmproxy抓包软件详解

可以看到,加载了test.py这个脚本。

三、启动安卓模拟器用于抓包

一定要确保上节课设置为手动代理,并且代理端口为8889

8e556ce954b54fb29e897361101cf072 - app小程序手机端Python爬虫实战14-mitmproxy抓包软件详解

打开浏览器,访问:

httpbin.org/get

此时,可以看到这里有一个headers,这里打印出来的就是我们想要获取的请求头

print(flow.request.headers)

fcc06e4a866646c781cbcb81fabb83c6 - app小程序手机端Python爬虫实战14-mitmproxy抓包软件详解

四、通过日志的形式输出

这种方式可以更加明确的区分颜色

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段

607d1039e0e54b40bf7b897d83a11a51 - app小程序手机端Python爬虫实战14-mitmproxy抓包软件详解

也可以获取到请求的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

02dc74ca7bee4460ac290af39faef05f - app小程序手机端Python爬虫实战14-mitmproxy抓包软件详解

既然会有请求函数,那么也就有响应函数:

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捕获,接着在模拟器上用浏览器再次访问网址

7dddfd0c0d6846c0a632fd9f587009d5 - app小程序手机端Python爬虫实战14-mitmproxy抓包软件详解

可以看到打印了状态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模板和各种游戏源码素材等等资料。更多内容可自行查看哦!

2e3d1f57d8cc4b689c0ec284120b1acc - app小程序手机端Python爬虫实战14-mitmproxy抓包软件详解

转载请注明:虚坏叔叔 » app小程序手机端Python爬虫实战14-mitmproxy抓包软件详解

喜欢 (0)

您必须 登录 才能发表评论!