每个主机
每个主机的隧道数量和字节数(含与不含 CONNECT 交换),以及没有任何请求能解释的隧道所归入的分组。
免费开源工具 · 浏览器内查看器
找出哪些主机和资源消耗了爬虫的流量。Scrapescope 是一款免费、开源的本地计量代理,面向爬虫和浏览器智能体。安装工具来测量一次运行,或在下方的浏览器查看器中打开已有的报告。
使用你自己的兼容 HTTP 代理,或在没有代理账号的情况下以直连估算模式运行。Scrapescope 和本查看器都不需要 ipvolt 代理服务。
作者:ipvolt · 译文更新于 · 阅读英文原文
来自内置的示例报告
示例是在 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.pyscrapescope 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 模型下载;但只有当主机位于有证据支持的后台流量目录中时才会这样标注。
屏蔽图片、媒体和字体,或拒绝目录中的后台主机后的模型估算效果,并附带针对你技术栈的修复方案;只有在你的运行中确实测到相应问题时才会出现。
直连估算模式无需代理账号即可运行。它测量的是那一次直连运行;受保护的目标站点经代理访问时可能表现不同,因此它不能预测经代理的运行或账单。 查看我们用这种方法在 34 个公开页面上测得的每 GB 页面数.
每 1,000 次页面加载的字节数;如果你提供自己的费率,还会给出每次运行、每 1,000 单位和每 1,000 个成功单位的估算成本。
如何阅读报告
在上游模式下,各主机的总量是隧道实测值:写入和读出通往服务商的套接字的字节(含 TLS),分别按含与不含 CONNECT 交换显示。直连估算测量的是到目标站点的连接,并估算额外的 CONNECT 交换。按请求和按类型的字节数,是根据插桩客户端报告的大小,从主机总量中按比例分摊的。成本是估算值:把所选的字节总量换算成 GB 或 GiB,再乘以你输入的费率。
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。
模型为 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 注明了这些来源,并记录了测量模型及其局限。
值得了解
不需要。使用兼容的 HTTP 代理,或在没有代理账号的情况下使用直连估算模式。Scrapescope 没有默认的服务商或费率。本查看器打开的是该工具生成的 report.json 文件。
免费。页面和工具都是免费的。报告在你浏览器中的隔离框架内解析,绝不会上传。如果你接受可选的分析,它只会收到固定标签,绝不会收到主机名、字节数、价格或文件名。
scrapescope 统计它通往服务商的套接字上的每一个字节,包括 TLS。服务商统计的可能是不同的子集:含或不含 CONNECT 交换,用 GB 或 GiB,有取整或最低消费,包含或不包含失败的请求。请把报告当作在你设备上的一次测量,而不是账单。
配置为把 HTTP 或 HTTPS 请求经 Scrapescope 转发的客户端,可以得到按主机统计的总量。绕过计量器的请求不会被统计。资源归属需要 Playwright Python 辅助模块或 Requests/HTTPX 钩子。托管浏览器不在覆盖范围内,因为它们的流量不经过你的本地计量器。
分享卡片在你的设备上生成,是否下载由你决定。工具本身不会把查询字符串写入报告,并且可以用目录 ID 或带密钥的哈希替换主机名(--redact-hosts)。分享之前请先检查报告;那是你的数据。
不一定。假设分析是对你实测运行的建模。屏蔽可能改变页面的行为、破坏提取或引来反爬检测;而第二次访问时加载更多内容的页面,可能让数字朝相反方向变化。用于对比的第二次运行才是测量;假设分析只是预测。
你的下一个连接
Scrapescope 可以搭配兼容的代理或以直连估算模式免费使用。ipvolt 代理服务是另一回事;如果你还需要服务商,可以查看当前的服务信息。
Proxy Toolkit MCP
生成代理配置、诊断连接错误,并找到合适的指南。
免费 · 开源 · 适用于任何服务商
打开 MCP 工具包(英文)