You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用mitmproxy导出捕获Web流量为JSON格式失败问题咨询

mitmproxy 导出捕获流量为JSON格式解决方案

操作问题根源

  • mitmproxy -w 参数输出的是mitmproxy专属的二进制流格式,用于后续流量回放,本身就不是JSON格式,所以无论是否搭配jsondump脚本,只要加了-w参数生成的outfile都不会是JSON
  • 官方jsondump.py脚本不支持和-w参数同时使用,且使用交互式mitmproxy运行脚本时,必须有实际流量经过代理才会触发写入,空跑不会生成文件内容,优先推荐使用非交互式的mitmdump运行脚本稳定性更高
  • 新版mitmproxy(>=8.0)的配置参数传递优先级:命令行传参 > 配置文件参数,直接在config.yaml写dump_destination可能出现脚本读取不到参数的情况

方案1:正确使用官方jsondump.py脚本

直接通过命令行传递参数,无需修改配置文件,执行以下命令即可:

mitmdump -s /pkg/mitmproxy/jsondump.py --set dump_destination=/tmp/mitmproxy.log.json

运行后所有经过代理的流量会自动以JSON Lines格式(每行一个JSON对象)写入目标路径。

方案2:使用自定义脚本实现可控的JSON导出

如果官方脚本无法正常运行,可以用极简自定义脚本实现,按需自定义导出字段:

  1. 新建custom_json_dump.py文件,写入以下内容:
from mitmproxy import http
import json
import os

class CustomJsonDumper:
    def __init__(self):
        # 可自行修改输出路径
        self.dump_path = "/tmp/mitmproxy.log.json"
        if not os.path.exists(self.dump_path):
            with open(self.dump_path, "w", encoding="utf-8") as f:
                pass

    def response(self, flow: http.HTTPFlow) -> None:
        # 可根据需求增减字段,比如不需要body可以删除对应行
        record = {
            "request": {
                "url": flow.request.url,
                "method": flow.request.method,
                "headers": dict(flow.request.headers),
                "body": flow.request.text,
                "timestamp": flow.request.timestamp_start
            },
            "response": {
                "status_code": flow.response.status_code,
                "headers": dict(flow.response.headers),
                "body": flow.response.text,
                "timestamp": flow.response.timestamp_end
            }
        }
        # 追加写入JSON Lines格式
        with open(self.dump_path, "a", encoding="utf-8") as f:
            f.write(json.dumps(record, ensure_ascii=False) + "\n")

addons = [CustomJsonDumper()]
  1. 执行命令运行脚本:
mitmdump -s custom_json_dump.py

补充说明

如果需要输出标准JSON数组格式,可在流量捕获结束后用以下命令转换JSON Lines为标准JSON:

jq -s '.' /tmp/mitmproxy.log.json > /tmp/mitmproxy.standard.json

内容的提问来源于stack exchange,提问作者xpt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 18:39:04