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

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

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

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

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

作者:ipvolt · 译文更新于 · 阅读英文原文

来自内置的示例报告

三个页面,按实际计量
783,026 字节
屏蔽图片、媒体和字体后的模型估算
127,386 字节

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

查看器

打开报告。

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

你的第一份报告

测量一次运行,查看报告。

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

直连估算,无需代理账号
scrapescope run --direct --env-all --out report.json -- python my_scraper.py
在终端中阅读报告
scrapescope report report.json

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

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

完整用法、辅助模块设置与上游代理配置(英文)

报告显示什么

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

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

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

每个主机

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

资源类型

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

浏览器后台流量

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

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

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

每 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)和计费规则,考虑最低消费,并把估算结果与实施和验证改动所需的时间进行比较。

隐私

报告只留在你的设备上。

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

隐私与分析(英文)

前人工作

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

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

值得了解

几个明确的回答。

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

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

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

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

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

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

它支持哪些客户端?

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

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

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

屏蔽一定会减少字节吗?

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

你的下一个连接

现在就使用这些工具。

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

了解 ipvolt

免费工具

更多免费工具

全部免费工具

Proxy Toolkit MCP

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

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

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

打开 MCP 工具包(英文)