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

如何使用Python导出Chrome DevTools网络面板指定名称请求的响应

可行方案说明

完全可以实现,目前有两种成熟的落地路径,按需选择即可:

方案1:通过CDP协议实时监听抓取(适合自动化批量场景)

Chrome对外暴露了DevTools Protocol(CDP)调试接口,Python可以直接对接接口实时捕获所有网络请求与响应,不需要手动操作DevTools面板。

  • 第一步:安装依赖
    推荐用Playwright做CDP对接,封装完善不需要手动处理底层协议:
    pip install playwright
    playwright install chrome
    
  • 第二步:运行抓取脚本
    脚本会启动/对接Chrome实例,自动监听所有响应,按你设置的请求名称关键词筛选后导出:
    from playwright.sync_api import sync_playwright
    import json
    
    # 替换为你要筛选的请求名称/URL关键词
    TARGET_FILTER = "your-request-name-keyword"
    collected_resp = []
    
    with sync_playwright() as p:
        # headless=False可以看到浏览器操作界面,要连已经打开的调试版Chrome可以用connect_over_cdp方法
        browser = p.chromium.launch(headless=False)
        ctx = browser.new_context()
        page = ctx.new_page()
    
        def on_response_catch(response):
            if TARGET_FILTER in response.url:
                try:
                    content_type = response.headers.get("content-type", "")
                    resp_body = response.json() if "application/json" in content_type else response.text()
                    collected_resp.append({
                        "url": response.url,
                        "status": response.status,
                        "data": resp_body
                    })
                except Exception as e:
                    print(f"解析响应 {response.url} 出错:{e}")
    
        page.on("response", on_response_catch)
        # 替换为你要抓取的目标页面地址
        page.goto("https://your-target-page.com")
        # 等待页面请求全部完成,可根据实际页面加载速度调整等待时长
        page.wait_for_timeout(8000)
        browser.close()
    
    # 结果导出为本地JSON文件
    with open("response_export.json", "w", encoding="utf-8") as f:
        json.dump(collected_resp, f, ensure_ascii=False, indent=2)
    

方案2:导出HAR文件离线解析(适合临时单次场景)

如果已经在DevTools Network面板抓到了目标请求,不想重新触发页面加载,可以直接导出HAR包后用Python解析筛选:

  1. 在Network面板空白处右键,选择Save all as HAR with content,将所有请求数据保存为本地HAR文件
  2. 安装解析依赖:
    pip install haralyzer
    
  3. 运行解析脚本筛选目标响应:
    import json
    from haralyzer import HarParser
    
    TARGET_FILTER = "your-request-name-keyword"
    collected_resp = []
    
    with open("your-saved-har-file.har", "r", encoding="utf-8") as f:
        har_data = json.load(f)
    parser = HarParser(har_data)
    
    for page in parser.pages:
        for entry in page.entries:
            req_url = entry["request"]["url"]
            if TARGET_FILTER in req_url:
                collected_resp.append({
                    "url": req_url,
                    "status": entry["response"]["status"],
                    "data": entry["response"]["content"].get("text", "")
                })
    
    with open("har_export_result.json", "w", encoding="utf-8") as f:
        json.dump(collected_resp, f, ensure_ascii=False, indent=2)
    

操作界面参考

Chrome DevTools Network面板截图


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 06:54:32