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界面看到所有请求/响应数据。

两种主要方式:

  1. 实时监听:像上面那样设置代理,适合调试和实时抓包
  2. 读取SAZ文件:Fiddler保存的会话文件本质是zip压缩包,里面包含原始HTTP数据

关键点:

  • 必须启动Fiddler并开启代理监听
  • 需要关闭SSL验证(verify=False)才能捕获HTTPS流量
  • SAZ文件解析时要注意编码问题

一句话建议: 用代理设置最直接,要离线分析就解析SAZ文件。

mitmproxy 了解一下

直接写个 mitmproxy 插件吧

头像满分

回到顶部