爬虫---Fiddler介绍和安装以及基本使用

对于爬虫开发者来说,Fiddler 就像一位"翻译官",能让我们清楚地看到程序与服务器之间交流的每一句话(HTTP/HTTPS 请求与响应)。掌握它,是分析网络请求、编写爬虫代码的必备技能。本文将为你系统梳理 Fiddler 的完整功能、多平台安装方法及高级使用技巧。

一、Fiddler 是什么?

Fiddler 是一款由 Telerik 公司开发的、功能强大的 Web 调试代理工具。它的工作原理是在你的电脑和网络之间建立一个本地代理服务器,所有进出的 HTTP/HTTPS 数据包都会经过它。这使得我们可以:

  • 捕获与分析:查看所有请求和响应的详细内容,包括 Headers、Cookie 和 Body。
  • 调试接口:模拟 GET、POST 等请求,测试 API 接口。
  • 修改数据:在请求发出前或响应返回前打断点,修改其内容。
  • 性能分析:查看请求耗时,找出性能瓶颈。
  • 自动响应:模拟服务器返回,无需真实后端即可测试前端逻辑。

其官方下载地址为:https://www.telerik.com/download/fiddler。目前主要版本包括 Fiddler Classic(经典版,免费)和 Fiddler Everywhere(新版,功能更现代)。

二、安装指南

Windows 版本安装

在 Windows 上安装 Fiddler 非常直接。

1. 下载与运行

从官网下载 fiddler4setup.exe 安装包。建议右键点击安装包,选择"以管理员身份运行",以避免后续因权限不足导致的问题。

2. 跟随向导

按照安装向导的提示,接受许可协议,并选择安装路径(通常默认即可)。建议勾选"创建桌面图标",点击"Finish"完成安装。

3. 环境与配置要点

  • .NET Framework:Windows 版 Fiddler 依赖于 .NET Framework,请确保你的系统已安装所需版本(通常为 4.7.2+)。
  • 首次启动 :安装完成后首次启动,Fiddler 会自动将你的系统代理设置为 127.0.0.1:8888,并询问是否启用 HTTPS 解密,建议先选"是",后续可以再调整。
  • 验证:打开浏览器访问任意 HTTP 网页,如果 Fiddler 左侧会话列表出现新条目,就表示安装成功了。

macOS 版本安装

Fiddler 基于 .NET Framework 开发,在 macOS 上运行则需要借助一个名为 Mono 的跨平台框架。

1. 安装 Mono 框架

首先,从 Mono 官网下载并安装框架:https://www.mono-project.com/download/stable/。下载的是一个 .pkg 文件,双击它按照图形化指引完成安装即可。

安装完成后,必须打开"终端"(Terminal),执行以下命令来同步 Mozilla 的根证书,这是后续能解密 HTTPS 流量的关键一步。

bash 复制代码
/Library/Frameworks/Mono.framework/Versions/<你的Mono版本号>/bin/mozroots --import --sync

注意 :你需要将命令中的 <你的Mono版本号> 替换为实际安装的版本。例如,如果安装的是 5.16.0.220,则命令为:

bash 复制代码
/Library/Frameworks/Mono.framework/Versions/5.16.0/bin/mozroots --import --sync

如果命令执行成功,你将在终端看到 ... new root certificates were added to your trust store. 类似的输出。

2. 下载与启动 Fiddler

从官网下载 Fiddler 的 macOS 版本,它是一个 fiddler-mac.zip 压缩包。将其解压到你希望存放的目录,比如"应用程序"(Applications)文件夹。

打开"终端",使用 cd 命令进入刚才解压的 Fiddler 目录。例如:

bash 复制代码
cd /Applications/fiddler-mac/

然后,通过 Mono 运行 Fiddler:

bash 复制代码
mono Fiddler.exe

3. 解决常见启动错误

在 macOS 上启动 Fiddler 时,你极有可能遇到以下错误信息:

复制代码
WARNING: The Carbon driver has not been ported to 64bits...

这是由于默认的 Mono 版本与 macOS 图形界面在某些方面存在兼容性问题。解决方案是强制以 32 位模式运行 Fiddler。将启动命令修改为:

bash 复制代码
mono --arch=32 Fiddler.exe

使用这条命令,Fiddler 应该就能成功启动并看到它的主界面了。

三、核心功能全解析

成功启动后,是时候体验它的核心功能了。

1. 抓包与查看

  • 开始/停止抓包 :确保左下角状态栏显示"Capturing "。如果不是,可以点击它或按键盘上的 F12 键切换状态。
  • 查看会话:左侧的"会话列表"会显示所有捕获到的请求。单击一个会话,右侧的"检查器"(Inspectors)面板会展示其详细的请求和响应内容,支持以 Headers、TextView、JSON、WebView 等多种格式查看。

2. 流量过滤(Filtering)

当抓包数据量很大时,过滤功能至关重要。在右侧"Filters"选项卡中:

  • 按主机名过滤 :如只显示 localhost*.example.com 的请求。
  • 按进程过滤 :如只显示 chrome.exe 发起的请求。
  • 按请求类型过滤 :如只显示 POST 请求。
  • 使用 FiddlerScript 脚本过滤 :对于更复杂的过滤需求,可通过 Rules > Customize Rules 修改 OnBeforeRequest 函数,实现精准的"白名单"效果。

3. HTTPS 流量解密

默认情况下,HTTPS 流量是加密的(显示为 TUNNEL)。要查看其明文内容,需要进行解密配置:

  1. 点击 Tools > Options > HTTPS 选项卡。
  2. 勾选"Decrypt HTTPS traffic",并选择"从所有进程"或特定进程。
  3. 点击"Actions "按钮,选择"Trust Root Certificate"来安装并信任 Fiddler 的根证书。
  4. 在弹出的提示中,选择"是"或"Yes"完成安装。

完成此步骤后,你就能看到 HTTPS 请求的明文数据了。

移动端配置 :如需调试手机 App,需先在电脑端设置允许远程连接(Tools > Options > Connections 勾选"Allow remote computers to connect"),然后在手机 WiFi 代理中设置电脑 IP 和端口(默认 8888),并通过手机浏览器访问 http://<电脑IP>:8888 下载并安装证书。

4. Composer 请求构造器

"Composer"功能允许你手动构建或修改一个请求并发送给服务器,这在调试爬虫接口时非常有用。

  1. 点击右侧的"Composer"选项卡。
  2. 在"Parsed"模式下,你可以像填表一样输入请求方法(如 GET/POST)、URL、Headers 和 Request Body。
  3. 你也可以在会话列表中右键选中一个历史请求,选择"Replay " -> "Reissue and Edit"来修改并重发。
  4. 点击右上角的"Execute"按钮,该请求就会被发送,你可以在左侧会话列表中看到结果。

5. Breakpoints 断点调试

这是 Fiddler 最强大的功能之一,可以让你在请求发送前或响应返回时"暂停"并修改数据。

  • 设置断点 :通过菜单 Rules -> Automatic Breakpoints -> Before Requests(请求前)或 After Responses(响应后)可设置全局断点。
  • 修改请求 :启用"Before Requests"断点后,发起一个请求,它会在 Fiddler 中暂停。你可以在右侧"Inspectors"面板中修改 URL 参数、请求头或请求体(如将搜索词苹果改为香蕉),然后点击"Run to Completion"按钮放行,观察服务器的反应。这常用于测试越权漏洞或边界值输入。
  • 修改响应 :启用"After Responses"断点后,可以拦截服务器返回的数据并进行修改(如将登录成功的 200 OK 改为 401 Unauthorized),再返回给客户端,用于测试前端对异常情况的处理是否完善。

6. AutoResponder 自动响应

AutoResponder 功能允许你设定规则,让 Fiddler 直接返回一个预设的响应,而无需将请求真正发送到服务器。这在以下场景中非常实用:

  • 模拟 API 故障:模拟服务器超时或返回错误码。
  • 替换本地文件:在请求图片、CSS、JS 文件时,返回本地修改版文件,加速调试。
  • 绕过真实后端:前端开发时,无需启动后端服务即可测试界面交互。

你可以在右侧"AutoResponder"选项卡中添加规则,匹配特定 URL,并指定返回一个本地文件或自定义响应字符串。勾选"Enable rules"后规则即生效。

四、常用技巧与注意事项

1. 快捷键速记

快捷键 功能
F12 切换抓包状态(开始/停止)
Ctrl + X 清空会话列表
Ctrl + F 搜索会话内容
R 重放选中的请求
Shift + R 重放选中的请求(可编辑)

2. 命令行快速操作

Fiddler 左下角的命令行输入框支持快速操作:

  • ?keyword:高亮包含关键词的会话。
  • =method POST:只显示 POST 请求。
  • @host example.com:只显示特定主机的请求。
  • cls:清空会话列表(等同于 Ctrl+X)。

3. 常见问题与解决

问题 解决方法
浏览器无法上网 检查 Fiddler 是否关闭了"Capturing"状态;或检查系统代理是否被设置为 127.0.0.1:8888,退出 Fiddler 后需手动关闭代理。
HTTPS 显示为 TUNNEL 未开启 HTTPS 解密,需按前述步骤安装证书并勾选"Decrypt HTTPS traffic"。
手机无法连接 检查防火墙是否拦截了 8888 端口;确认电脑 IP 地址是否正确(手机和电脑需在同一局域网)。
macOS 启动报错 使用 mono --arch=32 Fiddler.exe 以 32 位模式启动。

4. 与爬虫开发的结合

在实际爬虫开发中,Fiddler 能帮你:

  • 分析登录流程:捕获登录过程中的请求参数、Cookie 传递方式,为编写模拟登录代码提供准确依据。
  • 解析加密参数 :通过断点调试,观察前端 JavaScript 生成的加密参数(如 signtoken),快速定位加密逻辑。
  • 验证反爬策略:测试不同的 User-Agent、Referer 对响应结果的影响,找出绕过反爬的关键 Header。
  • 抓取移动端数据:配置手机代理,抓取 App 的 API 请求,为 App 爬虫提供数据来源。

五、总结

Fiddler 是爬虫开发者不可或缺的调试工具。无论是在 Windows 还是 macOS 上安装,步骤都不复杂------Windows 直接安装即可,macOS 则需要先配置 Mono 环境,并可能需要加上 --arch=32 参数启动。掌握其抓包查看、HTTPS 解密、Composer 重放、断点修改和 AutoResponder 自动响应等核心功能,将为你分析复杂的网络请求、编写高效的爬虫程序提供极大便利。工欲善其事,必先利其器,希望这份指南能帮你将 Fiddler 真正变成爬虫开发的得力助手。