«

获取浏览器所有XHR请求的完整响应

刚子 发布于 阅读:4


就这么一个获取浏览器所有XHR请求的完整响应折腾了一个小时,chrome没有搞定,转战火狐搞定。
首先火狐F12打开持续记录,切到网络-XHR,任意一条记录上面右键选择所有内容另存为HAR,然后把HAR文件拖到我的py文件上,自动把响应提取出来。

import sys
import json
import os

# ===================== 拖拽自动获取文件路径 =====================
if len(sys.argv) < 2:
    print("请把 HAR 文件 拖到我这个脚本上运行!")
    os.system("pause")
    sys.exit()

har_path = sys.argv[1]

# 输出文件和 HAR 同目录
out_path = os.path.splitext(har_path)[0] + "_响应结果.txt"

# ===================== 读取并提取 response.text =====================
try:
    with open(har_path, "r", encoding="utf-8") as f:
        har = json.load(f)
except Exception as e:
    print(f"读取HAR失败:{e}")
    os.system("pause")
    sys.exit()

results = []

for entry in har.get("log", {}).get("entries", []):
    try:
        text = entry["response"]["content"]["text"]
        if text.strip():
            results.append(text)
    except:
        continue

# ===================== 写入结果 =====================
with open(out_path, "w", encoding="utf-8") as f:
    for i, content in enumerate(results, 1):
        f.write(f"===== 第 {i} 条响应 =====\n")
        f.write(content + "\n\n")

print(f"✅ 提取完成!共 {len(results)} 条响应")
print(f"📄 已保存到:{out_path}")
os.system("pause")