V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
chensuixiang
V2EX  ›  程序员

请教如何一次性批量复制浏览器 websocket 消息

  •  
  •   chensuixiang · 2023-12-25 22:47:08 +08:00 · 1736 次点击
    这是一个创建于 367 天前的主题,其中的信息可能已经有所发展或是发生改变。

    不才,还没谷歌到答案,请教各位彦祖们。

    谷歌浏览器控制台网络,可以录制网络日志,看到所有请求,其中包含 websocket 消息。

    ws 消息中也能清晰看到每一条发送以及收到的消息,这些消息也能一条一条复制。但是我想批量全部复制下来(主要复制发送的报文),最好是以 base64 的格式保存下来,请问各位彦祖有什么法子。(包括但不限于各种插件,油猴脚本等)

    第 1 条附言  ·  2023-12-26 09:36:42 +08:00
    ~~AI 其实我早就问过了( gpt 账号我还是有的),就是问过了没找到答案,谷歌了也没找到合适的答案,所以才来请教彦祖们。目前有点想试试 goreplay 能不能做到,这个之前用过录制 http 。但是感觉可能不行,得空了再试试。如果不行我就先手动一条一条复制;再不行再想其他办法。
    9 条回复    2023-12-26 19:07:34 +08:00
    sumulige
        1
    sumulige  
       2023-12-25 23:22:45 +08:00
    要一次性批量复制浏览器中的 WebSocket 消息,你通常需要使用浏览器的开发者工具,结合一些额外的步骤或工具。下面是一个常规的方法,以及一些建议来实现这个目标:

    ### 使用浏览器的开发者工具

    1. **打开开发者工具**:
    - 在大多数现代浏览器中(如 Chrome, Firefox, Edge ),你可以通过右键点击页面并选择“检查”或使用快捷键(如 `Ctrl+Shift+I` 或 `F12`)打开开发者工具。

    2. **找到 WebSocket 消息**:
    - 转到“网络(Network)”标签。
    - 重新加载页面以捕获网络活动。
    - 在网络活动列表中找到 WebSocket 连接。在 Chrome 中,你可以通过过滤器筛选出 WebSocket 类型的连接。

    3. **查看和复制消息**:
    - 选择 WebSocket 连接,查看消息标签。
    - 这里你可以看到所有通过这个 WebSocket 连接发送和接收的消息。

    4. **复制消息**:
    - 大多数浏览器允许你逐条复制消息,但并不直接支持批量复制。
    - 为了批量复制,你可能需要手动选择并复制这些消息,或使用浏览器的控制台运行一些 JavaScript 代码来提取这些消息。

    ### 使用其他工具或方法

    - **浏览器插件**:
    - 一些专门的浏览器插件可能能帮助捕获和导出 WebSocket 消息。

    - **编写自定义脚本**:
    - 如果你熟悉 JavaScript ,可以在浏览器控制台中编写脚本来捕获并导出 WebSocket 消息。

    - **使用网络抓包工具**:
    - 使用如 Wireshark 这样的网络抓包工具也可以捕获 WebSocket 消息,但这种方法相对复杂,需要一定的网络知识。

    - **服务器端日志**:
    - 如果你可以访问后端服务器,直接在服务器上记录 WebSocket 消息可能更简单。

    ### 注意事项

    - **隐私和安全**:
    - 在捕获和分享 WebSocket 消息时,请确保遵守隐私和安全规定。不要非法捕获或分享敏感信息。

    - **技术限制**:
    - 根据你使用的浏览器和其版本,可用的功能可能有所不同。

    总之,批量复制 WebSocket 消息通常需要结合浏览器开发者工具和一些额外的步骤或工具。根据你的具体需求和技术能力,你可以选择最适合的方法来实现这一目标。
    darcyC
        2
    darcyC  
       2023-12-25 23:29:30 +08:00
    上面的回复疑似 AI 垃圾信息
    rsy
        3
    rsy  
       2023-12-26 08:11:54 +08:00 via Android   ❤️ 1
    @Livid #1 AI 低质量回复
    keepRun
        4
    keepRun  
       2023-12-26 09:14:32 +08:00 via Android
    ai 的回答是真的啰嗦
    musi
        5
    musi  
       2023-12-26 09:58:50 +08:00   ❤️ 3
    chrome devtools 找到 ws 请求-右键-Copy-copy all as har
    粘贴到代码编辑器,格式化一下就是个 json ,有个字段叫_webSocketMessages ,这个数组里面存的就是 ws 消息
    Livid
        6
    Livid  
    MOD
       2023-12-26 10:03:54 +08:00
    @rsy
    @darcyC
    @keepRun

    谢谢,那个账号已经被彻底 ban 。
    ragnaroks
        7
    ragnaroks  
       2023-12-26 12:33:51 +08:00
    我不确定是否可行,不过理论上通过油猴写个用户脚本,override (new WebSocket) 接管 send 和 receive 应该是可行的,就如同 override console.log 之类
    chensuixiang
        8
    chensuixiang  
    OP
       2023-12-26 15:01:03 +08:00
    @musi 彦祖大哥真神人啊 感谢感谢感谢,非常感谢,非常非常感谢!!!
    vvhy
        9
    vvhy  
       2023-12-26 19:07:34 +08:00
    简单粗暴的方法:ctrl+shift+i ,打开 devtools for devtools🤣
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1047 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 19:50 · PVG 03:50 · LAX 11:50 · JFK 14:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.