Python中如何获取Fiddler监听的数据
有没有什么库之类的。我怎么找不到?
Python中如何获取Fiddler监听的数据
9 回复
顶一下,我也需要
import requests
import json
# 设置代理指向Fiddler(默认端口8888)
proxies = {
'http': 'http://127.0.0.1:8888',
'https': 'http://127.0.0.1:8888'
}
# 发送请求,流量会经过Fiddler
response = requests.get('http://httpbin.org/get', proxies=proxies, verify=False)
print(response.json())
# 如果要直接读取Fiddler保存的SAZ文件
import zipfile
import xml.etree.ElementTree as ET
def parse_saz_file(saz_path):
"""解析Fiddler的SAZ文件格式"""
with zipfile.ZipFile(saz_path, 'r') as z:
# 读取原始数据文件
raw_files = [f for f in z.namelist() if f.startswith('raw/')]
for raw_file in raw_files:
content = z.read(raw_file).decode('utf-8', errors='ignore')
print(f"=== {raw_file} ===")
print(content[:500]) # 只打印前500字符
print()
# 使用示例
# parse_saz_file('session.saz')
核心原理:
Fiddler作为代理服务器(默认127.0.0.1:8888),Python代码通过设置proxies参数将流量导向Fiddler,这样就能在Fiddler界面看到所有请求/响应数据。
两种主要方式:
- 实时监听:像上面那样设置代理,适合调试和实时抓包
- 读取SAZ文件:Fiddler保存的会话文件本质是zip压缩包,里面包含原始HTTP数据
关键点:
- 必须启动Fiddler并开启代理监听
- 需要关闭SSL验证(
verify=False)才能捕获HTTPS流量 - SAZ文件解析时要注意编码问题
一句话建议: 用代理设置最直接,要离线分析就解析SAZ文件。
mitmproxy 了解一下
直接写个 mitmproxy 插件吧
头像满分

