基准测试阅读约 3 分钟

你需要多少 GB 的代理流量?我们实测了每 GB 能加载多少页面

我们通过本地计量代理用三种方式加载了 34 个公开页面。1 GB 大约能完成 44,000 次仅 HTML 的抓取,或约 900 次完整的 Playwright 页面加载。

本页内容

如果只用 HTTP 客户端抓取 HTML,1 GB 大约能装下 44,000 个页面;如果在浏览器里加载同样的页面,大约只有 900 个。抓取方式让答案相差约 49 倍,网站类型带来的差别要小得多。

2026 年 10 月 5 日,我们通过本地计量代理加载了 34 个公开页面,三种模式各加载三次。字节数按线路上的双向流量统计,因此包含 TLS 握手、HTTP 头、所有上行数据,以及对代理 CONNECT 交换的估算,而不只是页面重量。

页面的抓取方式每页中位数第 90 百分位每 GB 页面数(中位数页面)每 GB 页面数(第 90 百分位页面)
HTTP 客户端,仅 HTML(Requests 2.34.2)22.7 KB59.2 KB44,08316,880
Playwright 1.63.0,完整加载1.10 MB2.45 MB906408
Playwright,屏蔽图片、媒体和字体454.6 KB2.28 MB2,199437

1 GB 为 10^9 字节。每个页面的取值是它三次加载的中位数,第 90 百分位是 34 个页面中第四重的那个。如果你的目标页面很重,请按这一列来规划:屏蔽图片几乎没有改变它(从 2.45 MB 到 2.28 MB),因为最重的页面重在脚本。

估算你自己的 GB

code
GB per day = pages per day × bytes per page × attempts per page ÷ 1,000,000,000

举个例子:每天用完整浏览器加载 50,000 个页面,按 1.10 MB 的中位数、每页 1.2 次尝试计算,就是 50,000 × 1,103,256 × 1.2 ÷ 10^9 = 66.2 GB/天。同样的任务改用 HTTP 客户端、按 22.7 KB 的中位数计算,是 1.4 GB/天。这里的 1.2 是示例用的假设(每五个页面重试一次),不是本次测得的数值。

要按尝试次数而不是页面数来算,因为每次重试都会把页面重新下载一遍;代理重试:丢失一个响应,创建两个任务说明了什么情况下重试才是安全的。另外,这些中位数描述的是我们的 34 个页面,不是你的页面。本文使用的免费计量工具 Scrapescope 可以在没有代理账号的情况下测量你自己的页面。

按页面类型看每 GB 页面数

每页字节数的中位数,括号内是每 GB 页面数:

页面类型仅 HTML完整加载屏蔽图片、媒体和字体
文档与参考(7 个页面)37.2 KB (26,912)589.6 KB (1,696)433.5 KB (2,306)
新闻文章(5)51.7 KB (19,355)1.32 MB (758)2.24 MB (445)
博客文章(5)24.9 KB (40,202)601.1 KB (1,663)444.3 KB (2,250)
论坛帖子(3)20.8 KB (48,167)2.45 MB (408)2.26 MB (441)
商店分类页(5)20.0 KB (50,042)1.33 MB (751)388.6 KB (2,573)
商店商品页(5)21.3 KB (46,983)1.16 MB (858)347.9 KB (2,874)
JavaScript 应用(4)11.1 KB (90,009)1.39 MB (717)751.0 KB (1,331)

各组的页面数很少,请把它们当作示例来读。商店页面来自爬虫练习沙盒和一个演示商店,因为我们排除了条款禁止自动化访问的零售商;真实的零售页面可能更重。对 JavaScript 应用来说,11 KB 只是 HTML 文档本身。HTTP 客户端只抓取这一个文档,不会加载脚本要加载的任何内容;我们测量的是字节数,而不是你需要的数据是否在这份 HTML 里。

什么对字节数影响最大

按在这组数据中的影响从大到小排列:

  1. 浏览器还是 HTTP 客户端。 对同一个页面,完整的浏览器加载传输的字节数中位数是 HTML 抓取的 31 倍,范围从一个 Python 文档页面的 2.1 倍到一个 JavaScript 渲染演示页面的 195 倍。
  2. 脚本比图片更重。 脚本占全部完整加载字节的 49%;图片、媒体和字体合计占 35%。三个论坛帖子在两种浏览器模式下都保持在 2.2 MB 到 2.6 MB 之间。
  3. 其他站点的主机。 完整加载字节的一半(49.9%)流向了页面自身站点之外的主机。中位数页面有 38% 流向那里,另有 7 个页面完全没有。最大的单个主机是 www.googletagmanager.com:它出现在 34 个页面中的 17 个上,每次加载约 308 KB,占全部完整加载字节的 12%。有一篇新闻文章连接了 32 个主机。
  4. 屏蔽图片、媒体和字体。 节省量的中位数是 28%。有 10 个页面超过 50%,最高 84%;有 6 个页面低于 10%。这 6 个页面中有三个在开启屏蔽后传输的字节反而更多。一篇新闻文章在三次屏蔽加载中有两次从 www.gstatic.com 拉取了 1.14 MB,而这个主机在任何一次完整加载中都不在它最大的三个主机之列。在另一篇文章上,一个嵌入的 YouTube 视频在屏蔽时传输了 1.9 MB 到 2.0 MB,不屏蔽时是 1.2 MB。屏蔽会改变页面的行为,所以在依赖它之前请再测一次对比运行;Playwright 的网络指南记载了这里使用的 route 调用,Playwright 代理配置则说明代理这一侧。

压缩没有参与排序,因为每次运行都开启了压缩:34 个 HTML 响应全部是压缩后返回的(17 个 Brotli,14 个 gzip,3 个 Zstandard)。HTML 文档解压后的中位数是 83.5 KB,而整个抓取在线路上的中位数是 22.7 KB。不请求压缩的客户端下载的大小会更接近解压后的大小;参见哪些客户端不使用压缩。

上行占比与隧道开销

模式上行字节占全部字节的比例每页上行字节中位数
HTTP 客户端,仅 HTML6.3%1.9 KB
Playwright,完整加载2.7%28.9 KB
Playwright,开启屏蔽2.9%17.3 KB

上行流量总体占比很小,但在小页面上占比很大:在单次 HTML 抓取中最高达到 21%,因为无论响应多小,TLS 握手和请求本身的开销都一样。请确认你的服务商是否对两个方向都计费。

估算的 CONNECT 交换给一次 HTML 抓取增加的字节数中位数是 109 字节,给一次完整的浏览器页面加载增加 2.6 KB,每条隧道一次交换。浏览器没有自行在后台抓取任何内容:在全部 204 次浏览器运行中,scrapescope 的后台流量、空闲预连接和未归属三个分类都是 0 字节。这是 Playwright 自带的 Chromium 在默认启动设置下的结果;其他浏览器构建没有测试。

每 1,000 个页面的成本

中位数页面,括号内是第 90 百分位页面:

每 GB 价格仅 HTML完整加载屏蔽图片、媒体和字体
$1.00$0.02 ($0.06)$1.10 ($2.45)$0.45 ($2.28)
$3.50$0.08 ($0.21)$3.86 ($8.57)$1.59 ($7.99)
$5.00$0.11 ($0.30)$5.52 ($12.24)$2.27 ($11.42)
$10.00$0.23 ($0.59)$11.03 ($24.48)$4.55 ($22.83)

$3.50 是 ipvolt 公布的价格:价格部分显示 "From $3.50/GB",常见问题中写的是 "Traffic starts from $3.50/GB at launch." 另外三个是取整的参考点,不是任何人的价目表;市场价格请看无限量住宅代理套餐每 GB 的成本。每个数字都是字节数 ÷ 10^9 × 价格。它估算的是传输量,不是账单。

与 2025 年 Web Almanac 的对比

2025 年 Web Almanac 的 Page Weight 章节写道:"The median home page in 2025 was 2.86 MB on desktop and 2.56 MB on mobile." 它的内页图表在 2025 年 7 月的数值是桌面端 1,963 KB、移动端 1,769 KB,HTML 响应的中位数是桌面端 35 KB、移动端 33 KB。

该章节把页面重量定义为 "the total volume of bytes transferred to a user’s device",并说明它的 JavaScript 数据是 "bytes for compressed JavaScript files",所以这些是传输大小,不是未压缩大小。在 HTML 数字旁边,它没有重复这一说明。

我们的完整加载中位数是 1.10 MB,低于 Almanac 的内页中位数。这组页面偏向文档和沙盒页面,而且大多是内页。HTML 的数字很接近:这里是线路上的 22.7 KB,那里是 33 KB 到 35 KB。两者统计的对象不同。Almanac 统计的是页面各个响应的重量;本次测试统计的是双向经过隧道的每一个字节。

方法与局限

  • 时间和地点。 2026 年 10 月 5 日 08:37 至 09:04 UTC,从位于芬兰赫尔辛基的一台服务器直连发出。没有使用付费代理。
  • 工具。 以直连估算模式运行的 scrapescope 0.1.0 作为本地计量代理,Python 3.14.4,Requests 2.34.2(urllib3 2.8.0),以及 Playwright 1.63.0 及其自带的 Chromium headless shell 153.0.8010.12。
  • 每次加载。 新进程、新浏览器、空缓存,没有 cookie,也没有同意任何弹窗。浏览器使用 1280×900 的视口,等待 load 事件,然后最多再等 10 秒让网络空闲。它不滚动也不点击,所以滚动时才加载的内容没有计入。HTTP 客户端发送一次 GET 并跟随重定向。
  • 页面。 34 个 robots.txt 允许访问的 URL,不需要登录,也没有付费墙。有一个论坛候选页面在测量前被剔除,因为其网站条款禁止自动化访问。全部 306 次加载都返回 HTTP 200。
  • 波动。 同一页面最重和最轻的加载之间的差距,中位数在仅 HTML 模式下是 0.05%,完整加载是 0.2%,开启屏蔽是 0.3%。最大的是 54%,出现在上文提到的那篇新闻文章上。
  • 局限。 直连只能复现传输层,不能复现代理的出口位置、拦截和重试;scrapescope 的 README 把估算模式称为受保护网站的 "a lower bound"。CONNECT 字节是估算值。按资源类型划分的占比由工具根据各主机的总量分摊得出,不是逐个请求测得的。只有一个地点、一天,而且页面会变化。

下载:URL 列表、包含全部 306 次运行的原始 CSV、计算得出的汇总,以及附带 README 的测量脚本。

ipvolt 正在为开发者和智能体构建代理基础设施。加入候补名单,开放访问时只发一封邮件。

参考来源

  1. Web Almanac 2025: Page Weight (HTTP Archive)
  2. scrapescope README at the commit used: sizing mode, what is counted, limits
  3. Playwright for Python: network, aborting requests with route()
  4. Playwright for Python: Request.resource_type
  5. Requests: response content and automatic decoding of compressed bodies

标签:ProxiesChoosing proxies