# 看清爬虫的代理流量花在了哪里。在浏览器中打开报告。

Source: https://ipvolt.com/zh/guides/scraper-bandwidth-report
Markdown: https://ipvolt.com/zh/guides/scraper-bandwidth-report.md
Language: zh-CN

[首页](https://ipvolt.com/zh.md) / [工具](https://ipvolt.com/zh/tools.md) / Scrapescope

免费开源工具 · 浏览器内查看器

译文更新于: 2026-10-05
作者: ipvolt

[阅读英文原文](https://ipvolt.com/guides/scraper-bandwidth-report.md)

找出哪些主机和资源消耗了爬虫的流量。Scrapescope 是一款免费、开源的本地计量代理，面向爬虫和浏览器智能体。安装工具来测量一次运行，或在下方的浏览器查看器中打开已有的报告。

免费，MIT 许可 · 无需 ipvolt 账号 · 报告只留在你的浏览器中

使用你自己的兼容 HTTP 代理，或在没有代理账号的情况下以直连估算模式运行。Scrapescope 和本查看器都不需要 ipvolt 代理服务。

**来自内置的示例报告:** 三个页面，按实际计量: 783,026 字节 → 屏蔽图片、媒体和字体后的模型估算: 127,386 字节.

示例是在 books.toscrape.com 上真实运行的三个页面，以直连估算模式记录。图片和字体占 783,026 字节中的 655,640 字节（84%）。屏蔽后的数字来自报告的假设分析：它是基于分摊字节建立的模型，而不是第二次实测运行。

## 安装 scrapescope。

需要 Python 3.11 或更高版本。browser 扩展提供 find 命令和 Playwright 辅助模块；请在同一环境中安装 Playwright 的 Chromium，确保浏览器版本一致。

用 uv 安装命令:

```sh
uv tool install 'scrapescope[browser] @ git+https://github.com/ipvolt/scrapescope' --with-executables-from playwright
playwright install chromium
```

用 pipx 安装:

```sh
pipx install 'scrapescope @ git+https://github.com/ipvolt/scrapescope'
pipx inject --include-apps scrapescope playwright
playwright install chromium
```

用 pip 安装:

```sh
pip install 'scrapescope[browser] @ git+https://github.com/ipvolt/scrapescope' && python -m playwright install chromium
```

计划发布到 PyPI。这些从 Git 安装的命令已在 macOS 上验证；Windows 尚未测试。

[GitHub 上的源码与文档](https://github.com/ipvolt/scrapescope)

## 打开报告。

把 scrapescope 的 report.json 拖入框内、选择文件，或加载内置示例。报告在本页的隔离框架内解析，不会上传任何内容。你可以对比两次运行，按你输入的费率为字节计价，并下载在你设备上生成的分享卡片。查看器界面为英文。

交互式查看器仅在 HTML 页面中提供。在网页上，它会在隔离框架内打开 scrapescope 的 report.json，绘制主机、资源类型和分组的图表，对比两次运行，按你输入的费率为字节计价，并在本地生成分享卡片。这份 Markdown 导出包含相同的文字，但不含查看器。

[在网页上打开查看器](https://ipvolt.com/zh/guides/scraper-bandwidth-report#viewer)

## 测量一次运行，查看报告。

安装后，让一个已支持代理的 Python 爬虫通过 Scrapescope 运行。把 my_scraper.py 换成你自己的脚本。直连估算使用你本机的网络连接；它不测试代理服务商，也不能预测受保护的目标站点经代理访问时的表现。

直连估算，无需代理账号:

```sh
scrapescope run --direct --env-all --out report.json -- python my_scraper.py
```

在终端中阅读报告:

```sh
scrapescope report report.json
```

在上方的查看器中打开 report.json，以可视化方式查看。包装命令会设置代理环境变量；你的客户端必须遵循这些变量，或使用显式的代理配置。隧道总量不需要浏览器插桩，但资源归属需要 Playwright Python 辅助模块，或仓库文档中说明的 Requests/HTTPX 钩子。

如果是另一类任务，可以用 scrapescope find URL --value V --direct 查找包含已知值的响应。把 URL 换成你的页面，把 V 换成你需要的值，并在 shell 中给两者加上引号。--direct 选项使用你本机的网络连接，无需代理账号。该命令使用已安装的 Chromium 浏览器，只观察页面的初始加载；在修改提取任务之前，请先查看捕获限制和重放结果。

[完整用法、辅助模块设置与上游代理配置（英文）](https://github.com/ipvolt/scrapescope/blob/5124eee588039796f8bf948b3b57b3667bbb11ef/README.md)

## 找出包含目标值的已捕获响应。

scrapescope find URL --value V 会在无头 Chromium 中加载页面一次，并在捕获到的文本响应中查找你指定的值，包括常见的编码形式。它按独立请求的估算传输大小对匹配项排序，并标出浏览器发送的 Cookie 或令牌。它可能漏掉过大的、被淘汰的、二进制的或 worker 的响应，以及初始捕获之后才加载的内容。可选的重放会在不使用浏览器的情况下验证候选响应；仅有匹配并不能说明你可以复用它。

本地计量器统计的是它与上游代理之间连接上的字节。浏览器辅助模块补充请求信息，使报告可以把这些总量按资源类型分摊。这是两种不同的测量：隧道总量是实测值；归给某个脚本或图片的份额是分摊值。与服务商的控制台对比之前，请先看清标签。

### 每个主机

每个主机的隧道数量和字节数（含与不含 CONNECT 交换），以及没有任何请求能解释的隧道所归入的分组。

### 资源类型

按资源类型（如文档、脚本、图片、字体、媒体和 XHR）统计的字节数，从各主机的隧道总量中分摊得出。

### 浏览器后台流量

浏览器自行发起的流量，并标注目录中的组件，例如 Chromium 的 optimisation guide 模型下载；但只有当主机位于有证据支持的后台流量目录中时才会这样标注。

### 假设分析与生成的修复方案

屏蔽图片、媒体和字体，或拒绝目录中的后台主机后的模型估算效果，并附带针对你技术栈的修复方案；只有在你的运行中确实测到相应问题时才会出现。

### 购买前先估算

直连估算模式无需代理账号即可运行。它测量的是那一次直连运行；受保护的目标站点经代理访问时可能表现不同，因此它不能预测经代理的运行或账单。 [查看我们用这种方法在 34 个公开页面上测得的每 GB 页面数](https://ipvolt.com/zh/blog/how-many-gb-of-proxies-do-i-need).

### 每 1,000 单位的数字

每 1,000 次页面加载的字节数；如果你提供自己的费率，还会给出每次运行、每 1,000 单位和每 1,000 个成功单位的估算成本。

## 三种标签，一个单位，不是账单。

### 隧道实测、分摊、估算

在上游模式下，各主机的总量是隧道实测值：写入和读出通往服务商的套接字的字节（含 TLS），分别按含与不含 CONNECT 交换显示。直连估算测量的是到目标站点的连接，并估算额外的 CONNECT 交换。按请求和按类型的字节数，是根据插桩客户端报告的大小，从主机总量中按比例分摊的。成本是估算值：把所选的字节总量换算成 GB 或 GiB，再乘以你输入的费率。

### GB 指 10⁹ 字节

scrapescope 默认以 GB = 10⁹ 字节为单位；1 GiB（2³⁰ 字节）大约多 7.4%，使用 --gib 开关可改为以 GiB 报告。对比之前，请确认你的服务商使用哪种单位。

### 它不是账单

各服务商的计量方式不同：含或不含 CONNECT 交换，用 GB 或 GiB，有最低消费或取整，包含或不包含失败的请求。目前尚未发布与任何服务商账单的对账结果，因此报告中的数字都不具备账单级精度。

### 不覆盖托管浏览器

云浏览器服务从其自身网络发出代理流量，本地计量器无法看到。scrapescope 不对它们做任何论断。

### 屏蔽可能破坏提取

屏蔽图片、媒体和字体，或拒绝后台主机，可能改变页面的行为或引来反爬检测；拒绝 Chromium 的组件更新还会中断证书吊销和 Safe Browsing 数据。每一项假设分析都只是预测：在依赖它之前，请用第二次运行进行对比。

## 这些数字是如何计算的。

Scrapescope 是一款开源的本地计量代理，用于测量经它转发的爬虫和浏览器智能体流量。它按主机测量隧道字节数；经过插桩的客户端可以补充资源归属信息。find 命令按估算的传输大小，对包含指定值的已捕获响应进行排序；run 命令支持字节预算。

### 计费基准

find 按以下各项之和对匹配项排序：编码后的正文字节 + 响应头字节 + 请求头字节 + HTTPS 下一次新 TLS 握手的估算值 7,200 字节。这近似于一个接受与浏览器相同压缩方式的客户端，在新连接上单独请求该响应一次。它不包括 CONNECT 交换、重定向，以及会话恢复失败后的第二次握手。在 HTTP/2 和 HTTP/3 上没有单独的头部大小，因此两个头部字段均为 0，匹配项会被标记为 multiplexed。

### 7,200 字节的估算值

模型为 HTTPS 加上固定的 7,200 字节 TLS 握手估算值。实际的证书链和连接复用情况各不相同，因此真实请求传输的字节可能更多或更少。这是建模假设，并非对候选响应握手的实测。

### 分组

没有匹配请求的主机隧道按规则标注：background:<id> 仅用于后台流量目录中的主机；before_attach 用于辅助模块挂载之前打开的隧道；preconnect_idle 用于没有失败、且上行载荷不超过 3,072 字节、下行不超过 6,144 字节的隧道，这是提前建立却从未使用的连接的典型特征；其余标为 unattributed。未收录在目录中的主机绝不会被称为后台流量，各分组相加等于含 CONNECT 的总量。

### 成本

只有在你提供费率时才会显示成本：含与不含 CONNECT 的总字节数除以 10⁹（使用 --gib 时除以 2³⁰），再乘以你的费率；同时给出每 1,000 单位的成本，在已知成功情况时还给出每 1,000 个成功单位的成本。标签为 estimated billable transfer（估算计费传输量）。

## 把实测字节换算成成本估算。

估算传输成本 = 字节数 ÷ 1,000,000,000 × 你的每 GB 价格。进行对比时，用第一次运行的字节数减去第二次运行的字节数，两者须采用相同的 CONNECT 基准和相同的成功单位数。查看器没有默认费率；请输入你自己服务商的费率。

假设示例：对同样的 100 次成功页面加载，第一次运行用了 200,000,000 字节，第二次用了 150,000,000 字节。按假定的每 GB $4 计算，两者的估算传输成本分别为 $0.80 和 $0.60。差额为每 100 次成功加载 $0.20；如果同样的结果重复出现，则为每 1,000 次 $2。这些是为演示公式而虚构的输入，不是实测的节省，也不是服务商报价。

在把字节减少视为改进之前，请先检查提取结果。使用你服务商的单位（GB 或 GiB）和计费规则，考虑最低消费，并把估算结果与实施和验证改动所需的时间进行比较。

## 报告只留在你的设备上。

报告在你的浏览器中的隔离框架内解析，绝不会上传；与报告有关的任何信息都不会发送到分析服务。如果你接受可选的分析，本页只记录固定标签：报告是通过文件、拖放还是内置示例打开的，以及是否解析成功；是否对比了两次运行；是否下载了分享卡片；是否复制了安装命令；以及是否点击了前往首页的链接。主机名、字节数、价格和文件名绝不会离开该框架。

[隐私与分析（英文）](https://ipvolt.com/privacy)

## 建立在他人率先实现的想法之上。

Scrapescope 借鉴了请求检查、本地代理流量统计以及 Chromium 后台流量分析方面的已有工作。项目的 README 注明了这些来源，并记录了测量模型及其局限。

## 来源与文档

[Scrapescope 源码、用法与测量说明（英文）](https://github.com/ipvolt/scrapescope/blob/5124eee588039796f8bf948b3b57b3667bbb11ef/README.md)

[Scrapescope MIT 许可证（英文）](https://github.com/ipvolt/scrapescope/blob/5124eee588039796f8bf948b3b57b3667bbb11ef/LICENSE)

## 常见问题

### 使用 scrapescope 需要 ipvolt 账号或代理吗？

不需要。使用兼容的 HTTP 代理，或在没有代理账号的情况下使用直连估算模式。Scrapescope 没有默认的服务商或费率。本查看器打开的是该工具生成的 report.json 文件。

### 查看器免费吗？它会发送什么？

免费。页面和工具都是免费的。报告在你浏览器中的隔离框架内解析，绝不会上传。如果你接受可选的分析，它只会收到固定标签，绝不会收到主机名、字节数、价格或文件名。

### 为什么这些数字和服务商控制台上的不一样？

scrapescope 统计它通往服务商的套接字上的每一个字节，包括 TLS。服务商统计的可能是不同的子集：含或不含 CONNECT 交换，用 GB 或 GiB，有取整或最低消费，包含或不包含失败的请求。请把报告当作在你设备上的一次测量，而不是账单。

### 它支持哪些客户端？

配置为把 HTTP 或 HTTPS 请求经 Scrapescope 转发的客户端，可以得到按主机统计的总量。绕过计量器的请求不会被统计。资源归属需要 Playwright Python 辅助模块或 Requests/HTTPX 钩子。托管浏览器不在覆盖范围内，因为它们的流量不经过你的本地计量器。

### 能否在不暴露目标站点的情况下分享报告？

分享卡片在你的设备上生成，是否下载由你决定。工具本身不会把查询字符串写入报告，并且可以用目录 ID 或带密钥的哈希替换主机名（--redact-hosts）。分享之前请先检查报告；那是你的数据。

### 屏蔽一定会减少字节吗？

不一定。假设分析是对你实测运行的建模。屏蔽可能改变页面的行为、破坏提取或引来反爬检测；而第二次访问时加载更多内容的页面，可能让数字朝相反方向变化。用于对比的第二次运行才是测量；假设分析只是预测。

## 现在就使用这些工具。

Scrapescope 可以搭配兼容的代理或以直连估算模式免费使用。ipvolt 代理服务是另一回事；如果你还需要服务商，可以查看当前的服务信息。

[了解 ipvolt](https://ipvolt.com/zh). 本文档不会提交注册。

## 先测量，再优化。

- [检查你的客户端是否请求了压缩](https://ipvolt.com/zh/guides/curl-compressed-accept-encoding.md): 对比实测的 Accept-Encoding 默认值，并在修改爬虫之前核实传输的字节数。
- [对比不限量套餐与按 GB 计费的成本](https://ipvolt.com/zh/blog/unlimited-residential-proxies-cost-per-gb.md): 把实测流量代入离线成本计算器，容量限制和套餐条款分开考虑。
- [ETag 监控：一个 no-cache 请求头改变了我们的结果](https://ipvolt.com/zh/blog/etag-monitoring-cache-control.md): 一次真实测试：一个请求头把 304 响应变成了完整下载。
- [代理基准测试应该测量什么](https://ipvolt.com/zh/blog/what-a-proxy-benchmark-should-measure.md): 内容成功率、响应时间和会话行为，并保留失败记录。
- [住宅代理与数据中心代理](https://ipvolt.com/zh/blog/residential-vs-datacenter-proxies.md): 从网络、内容成功率、延迟、会话需求和计费方式进行比较。
- [Proxy Toolkit MCP（英文）](https://ipvolt.com/mcp.md): 在你的编程智能体中直接使用配置模板和错误诊断。

[全部开发者指南](https://ipvolt.com/zh/guides.md)

## 更多免费工具

### Proxy Toolkit MCP

代理配置，直接在 AI 智能体中完成。

生成代理配置、诊断连接错误，并找到合适的指南。

免费 · 开源 · 适用于任何服务商

[打开 MCP 工具包（英文）](https://ipvolt.com/mcp.md)

[全部免费工具](https://ipvolt.com/zh/tools.md)
