wzw
V2EX  ›  问与答

如何能让 Python 实时获取到抓包的结果(Charles/fiddler)

  •  2
     
  •   wzw · May 4, 2017 · 16861 views
    This topic created in 3480 days ago, the information mentioned may be changed or developed.

    需求:用 Charles 抓了一个 https 的 post 结果 和 websocket wss 的结果。

    内容每 10 秒更新一次,而且用 python 模拟请求有点复杂,所以想用 charles 抓包以后,想办法把结果提出来给 python 程序进行处理。(或者直接把 Chrome 开发者工具中抓到的内容实时保存出来。)

    大家有没有这样的保存数据的办法,请分享一下,谢谢!

    Charles :

    Charles

    Chrome:

    Chrome

    Supplement 1  ·  May 4, 2017
    目前我选择了 anyproxy

    进行深入一步的应用

    有后续,继续反馈
    22 replies  •  2017-05-04 20:20:03 +08:00
    RFC2109
    RFC2109
    May 4, 2017❤️1
    1
    fiddler 可以写 js 脚本
    bearqq
    bearqq
    May 4, 2017❤️1
    2
    burpsuite 可以写 python 脚本
    ricemo
    ricemo
    May 4, 2017❤️1
    3
    mitmproxy
    wzw
    wzw
    OP
    May 4, 2017
    4
    @RFC2109 这个提醒好,我去看看如何操作。直接 js 写内容到数据库中
    fuxkcsdn
    fuxkcsdn
    May 4, 2017 via iPhone❤️1
    5
    @wzw 要在服务器上运行的话,可以尝试阿里的 anyproxy,顺便安利我修改的 anyproxy
    https://github.com/consatan/anyproxy
    相对于原版增加的功能见
    https://github.com/alibaba/anyproxy/pull/137
    wzw
    wzw
    OP
    May 4, 2017
    6
    @bearqq burpsuite 第一次听说,先学习一下,看应该如何用。
    @0xvincebye mitmproxy 我看一下,谢谢你
    wzw
    wzw
    OP
    May 4, 2017
    7
    @fuxkcsdn 立刻看去。
    Trim21
    Trim21
    May 4, 2017
    8
    前两天刚遇到这个问题。。。最后是用的 anyproxy。。
    wzw
    wzw
    OP
    May 4, 2017
    9
    @Trim21 那我先尝试 anyproxy,我现在用虚拟机试试!
    hcymk2
    hcymk2
    May 4, 2017
    10
    scapy
    jimmy66
    jimmy66
    May 4, 2017 via iPhone
    11
    Mark
    wzw
    wzw
    OP
    May 4, 2017
    12
    @Trim21 @fuxkcsdn anyproxy 搭建好了,有 2 个小问题:
    1. web 界面上能看到所有的请求信息,那如何读取这些请求信息给第三方程序进行处理,没有接口去读呀
    2. 好像不能抓 websocket
    wzw
    wzw
    OP
    May 4, 2017
    14
    @fuxkcsdn 自己写一个 rule,然后吧 responseDetail.response 保存到数据库中。 思路对不对。(想着 anyproxy 存了一份数据起来。)
    fuxkcsdn
    fuxkcsdn
    May 4, 2017❤️1
    15
    @wzw 对的,在 rule 里用 nodejs (懂点 js 应该都能驾驭) 处理所有数据
    也可以把数据 post 到你自定义的 api 里(这样就不限定语言了)

    BTW,我目前是在 android 机器里安装 anyproxy,监听到特定 app 的特定请求后,在 nodejs 里清洗数据,json 化后添加到远程 redis 队列,后台处理队列的有 python 也有 php
    wzw
    wzw
    OP
    May 4, 2017
    16
    @fuxkcsdn 谢谢。我先把所有请求保存成文件就好,先测试。功能能实现,其他都好办。js 不熟悉,还是能懂一点点的。现在开工。。。

    anyproxy 的确好,二次开发好。

    比 charles 灵活好多了。
    wzw
    wzw
    OP
    May 4, 2017
    17
    @fuxkcsdn 研究了一下,anyproxy 的确保存了一份文件,单代理关闭的时候自动清理 cache file。

    所以我懒得找,用了简单暴力的方法

    ```
    find / -name '*' -type f -mmin -1 | xargs grep "所包含的内容"
    ```

    定位到:
    .anyproxy/cache/

    东西都在里面

    再次感谢你
    fuxkcsdn
    fuxkcsdn
    May 4, 2017
    18
    @wzw 是的,默认就会保存一份 db 的( nedb 格式),我因为想让其运行在 android 手机上,所以特意加了关闭 db 的参数
    Trim21
    Trim21
    May 4, 2017
    19
    @wzw 我在 python 开了一个 http 服务器,用 rule 请求
    wzw
    wzw
    OP
    May 4, 2017 via Android
    20
    @Trim21 能说具体点吗?谢谢
    Trim21
    Trim21
    May 4, 2017
    22
    @wzw anyproxy 的中文文档太旧了。。。。里面给的样例代码已经不能用了,还是从英文文档找的。。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2165 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 132ms · UTC 11:12 · PVG 19:12 · LAX 03:12 · JFK 06:12
    ♥ Do have faith in what you're doing.