获取浏览器所有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")