• python爬虫之app爬取-mitmproxy 的使用


    mitmproxy 的使用

    mitmproxy 是一个支持 HTTP 和 HTTPS 的抓包程序,有类似 Fiddler、Charles 的功能,只不过它是一个控制台的形式操作。

    mitmproxy 还有两个关联组件。一个是 mitmdump,它是 mitmproxy 的命令行接口,利用它我们可以对接 Python 脚本,用 Python 实现监听后的处理。另一个是 mitmweb,它是一个 Web 程序,通过它我们可以清楚观察 mitmproxy 捕获的请求。

    下面我们来了解它们的用法。

    1. 准备工作

    请确保已经正确安装好了 mitmproxy,并且手机和 PC 处于同一个局域网下,同时配置好了 mitmproxy 的 CA 证书,具体的配置可以参考第 1 章的说明。

    2. mitmproxy 的功能

    mitmproxy 有如下几项功能。

    • 拦截 HTTP 和 HTTPS 请求和响应

    • 保存 HTTP 会话并进行分析

    • 模拟客户端发起请求,模拟服务端返回响应

    • 利用反向代理将流量转发给指定的服务器

    • 支持 Mac 和 Linux 上的透明代理

    • 利用 Python 对 HTTP 请求和响应进行实时处理

    3. 抓包原理

    和 Charles 一样,mitmproxy 运行于自己的 PC 上,mitmproxy 会在 PC 的 8080 端口运行,然后开启一个代理服务,这个服务实际上是一个 HTTP/HTTPS 的代理。

    手机和 PC 在同一个局域网内,设置代理为 mitmproxy 的代理地址,这样手机在访问互联网的时候流量数据包就会流经 mitmproxy,mitmproxy 再去转发这些数据包到真实的服务器,服务器返回数据包时再由 mitmproxy 转发回手机,这样 mitmproxy 就相当于起了中间人的作用,抓取到所有 Request 和 Response,另外这个过程还可以对接 mitmdump,抓取到的 Request 和 Response 的具体内容都可以直接用 Python 来处理,比如得到 Response 之后我们可以直接进行解析,然后存入数据库,这样就完成了数据的解析和存储过程。

    4. 设置代理

    首先,我们需要运行 mitmproxy,命令如下所示:

    启动 mitmproxy 的命令如下:

    mitmproxy

    运行之后会在 8080 端口上运行一个代理服务:

    右下角会出现当前正在监听的端口。

    或者启动 mitmdump,它也会监听 8080 端口,命令如下所示:

    mitmdump

    将手机和 PC 连接在同一局域网下,设置代理为当前代理。首先看看 PC 的当前局域网 IP。

    Windows 上的命令如下所示:

    ipconfig

    Linux 和 Mac 上的命令如下所示:

    ifconfig

    输出结果如图:

  • 相关阅读:
    利用软raid程序来配置实现“RAID1+0”阵列
    win11 已经配置好环境变量,但在命令行输入python/pip仍然出错
    JAVASE--继承
    ROS2进阶:在windows10上用vs2019编译rviz2
    跬智信息 (Kyligence) 荣获信创“大比武”重要奖项,坚持做大做实国产软件
    记一次 .NET 某金融企业 WPF 程序卡死分析
    AWS EKS 创建k8s生产环境实例
    电子图书馆
    Go sync.Map探究
    代码格式规范--clang-format的安装及配置
  • 原文地址:https://blog.csdn.net/lizhongjun1005/article/details/136444195