Fiddler是一款功能强大的HTTP/HTTPS网络抓包工具,能够帮助用户捕获、查看和分析所有经过本机的网络请求与响应,其中抓取HTML相关的网络交互是日常开发和调试中非常常见的使用场景。

Fiddler基础配置
在使用Fiddler抓取HTML请求前,需要先完成基础配置,确保工具可以正常捕获网络流量。
开启HTTPS抓包
大部分网页的HTML请求都走HTTPS协议,因此需要先开启Fiddler的HTTPS捕获功能,具体操作如下:
- 打开Fiddler,点击顶部菜单栏的
Tools,选择Options - 在弹出的窗口中切换到
HTTPS标签页 - 勾选
Capture HTTPS CONNECTs和Decrypt HTTPS traffic选项 - 点击
Actions按钮,选择Trust Root Certificate,按照提示安装Fiddler的根证书,确保HTTPS流量可以被正常解密 - 点击
OK保存配置
设置抓包过滤(可选)
如果只需要抓取特定进程的HTML请求,可以设置进程过滤,避免无关流量干扰:点击Fiddler工具栏的Any Process按钮,然后点击需要抓包的浏览器或其他进程窗口,即可只捕获该进程的网络请求。
抓取HTML网络请求
完成配置后,就可以开始抓取HTML相关的网络请求了,操作步骤如下:
- 打开需要调试的网页,刷新页面触发HTML资源的加载
- 回到Fiddler主界面,左侧的请求列表中会实时显示所有捕获到的网络请求
- 筛选HTML请求:点击Fiddler顶部的
Find按钮,输入html关键词,或者在请求列表的Content-Type列中查找值为text/html的请求,这类请求就是HTML相关的网络请求
如果需要更精准的筛选,可以使用Fiddler的过滤器功能:点击Filters标签页,勾选Use Filters,在Request Headers区域的Show only if URL contains输入框中填写.html,即可只显示URL中包含html的请求。
查看HTML网络响应
选中需要查看的HTML请求后,右侧面板会展示该请求的详细信息,查看响应内容的方式如下:
查看响应头部信息
切换到右侧面板的Inspectors标签页,点击Response区域的Headers选项,即可查看该HTML响应的状态码、响应头字段、缓存策略等信息。
查看响应体内容
在Inspectors标签页的Response区域,点击TextView或者WebView选项,即可查看HTML响应的具体内容:
TextView会以纯文本形式展示HTML代码,方便查看和复制源码WebView会渲染HTML内容,展示页面的实际显示效果
如果需要将响应内容保存到本地,可以右键选中该请求,选择Save - Response - Response Body,选择保存路径即可。
常见问题排查
在使用Fiddler抓取HTML请求时,可能会遇到无法捕获请求或者响应内容为空的情况,可参考以下方法排查:
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
| 无法捕获HTTPS的HTML请求 | 未安装Fiddler根证书或者证书未生效 | 重新安装Fiddler根证书,重启浏览器和Fiddler |
| 捕获到的HTML响应内容为空 | 请求未完成或者响应被压缩 | 等待请求完成,在Response的Headers中查看Content-Encoding,如果是gzip压缩,点击Response区域的Transformer选项,取消勾选Chunked Transfer-Encoding,选择GZip解压即可 |
| 请求列表中找不到目标HTML请求 | 抓包过滤规则设置过严 | 关闭过滤器或者放宽过滤条件,重新刷新页面 |
代码示例:模拟HTML请求验证抓包效果
可以通过以下Python代码模拟发送一个HTTP请求,验证Fiddler是否可以正常捕获该请求的HTML响应:
import requests
# 发送GET请求获取HTML页面
response = requests.get("http://ipipp.com/test.html")
# 打印响应状态码
print("响应状态码:", response.status_code)
# 打印响应内容的类型
print("响应内容类型:", response.headers.get("Content-Type"))
# 打印前500字符的HTML响应内容
print("HTML响应内容前500字符:")
print(response.text[:500])
运行上述代码后,在Fiddler的请求列表中可以找到该请求,选中后即可查看完整的HTML响应内容。