研究中的 30 个首页里有 9 个从未产出页面。扫描器发出请求,收到的是 401、403、429、202 或 520。这些行仍然留在已发布的数据里,仍然带着一个分数,而这个分数测量的是错误响应,不是站点本身。
这项排除,是研究主推的那个数字背后的方法决定。把这九个当作 0 分计入,均值是 44;把它们视为未测量,均值是 62。本站发布的是第二个数字,本文要论证的也是它——包括它让结果看起来没那么耸动的那一部分。这同时也是一次不小的修正:30% 的样本从未产出页面,排除它们会让均值移动 18 分,也就是已发布数字的 29%。
是哪九个,它们回了什么?
四个状态码加一个非标准状态码,构成了全部九个。九行中只有两行——22%——在向浏览器正常提供服务的同时拒绝了爬虫。
| 首页 | 状态码 | 与浏览器访问同一 URL | 状态码的含义 |
|---|---|---|---|
| bmw.com | 520 | 520 | 边缘错误,不是标准状态码 |
| nytimes.com | 403 | 403 | 对所有客户端都禁止访问 |
| reuters.com | 401 | 401 | 需要身份验证 |
| stackoverflow.com | 403 | 403 | 对所有客户端都禁止访问 |
| perplexity.ai | 403 | 403 | 对所有客户端都禁止访问 |
| google.com | 429 | 429 | 请求过多 |
| amazon.com | 202 | 202 | 已接受,但未返回页面 |
| zeit.de | 403 | 200 | 只拒绝了爬虫 |
| openai.com | 403 | 200 | 只拒绝了爬虫 |
每个状态码在这里到底意味着什么?
五个状态码里,四个描述的是一堵墙,一个描述的是对扫描器的限制。它们不能互换,对应的修法也各不相同。403 是最主要的回答:九行中有五行(56%)返回了禁止访问。
- 401——需要身份验证。 服务器在回答之前要求提供凭据。付费墙或私有源站会产生这个状态码。
- 403——禁止访问。 服务器理解了请求,并拒绝了它。这是 bot 防护最常见的形态,也是最常掩盖可修复配置的那个状态码。
- 429——请求过多。 这一个说的是扫描器,不是站点:请求速率被限制了,所以这是一个限制,而不是对页面的评判。它按原样发布,而不是被丢掉。
- 202——已接受,但没有页面。 202 是一种确认,不是一份文档。没有任何东西可以评分,所以它被标记为中止,而不是按内容单薄来评分。
- 520——非标准的边缘错误。 它由 Cloudflare 在源站返回了边缘无法使用的内容时发出。这是未能回答,而不是一个回答。
为什么 403 还会有一个分数?
因为报告必须展示发生了什么,而一个缺失的数字会把它藏起来。分数由实际返回的内容计算,会被标记为中止,并被排除在均值之外。
这与研究「全部发布」的原则是同一条。这九行是样本里最有趣的部分:它们说明,在一份知名站点名单里,有 30% 的站点第一次请求时不会被爬虫读取;也说明一个悄悄丢掉这些行的工具,会报告一个关于更小世界的漂亮数字。
「拒绝」和「屏蔽」有什么区别?
拒绝是指同一个 URL 对浏览器形式的请求正常提供服务,却把爬虫形式的请求拒之门外。屏蔽是指爬虫未被接纳,原因可能是一条 robots.txt 规则,也可能是那次拒绝。
这个区分值得保留,因为它是可以证明的。Zeit 和 OpenAI 是扫描能够证明这一点的两行:完全相同的 URL 对一个 user-agent 返回 200,对另一个返回 403。表里其余每一次拒绝,都是一堵对所有人都适用的墙;把它叫作爬虫屏蔽,只会是假设,而不是观察。
这项排除如何改变研究的均值?
它把均值从 44 移到 62。把那九个当作 0 分,会把它们加进分母,却不加它们得到的 142 分,于是均值下降了 18。
两个数字都是对同一张表做算术。但只有一个是在陈述网站。一个 403 页面没有词数、没有标题,也没有实体标记;给它评 0 分,等于说「没有文档」就是「文档做得很糟」。
如果我自己扫描也返回错误,该怎么办?
先读状态码,再读分数。非 200 是配置问题,再多内容工作也挪不动它。
- 检查是否有 bot 防护规则在向扫描器发送的 user-agent 返回 403。 爬虫指南列出了这些名字。
- 如果站点在登录或付费墙之后,扫描就看不到它,这个数字也不是关于你的内容的。
- 如果状态码是 429,等一等再重跑。那只是一个限制,重跑就是全部的修法。
- 一旦返回 200,分数就变成了一份待改清单。在那之前,它只是一份关于门的报告。
为什么发布失败,而不是只发布成功?
因为一个只报告自己能读到什么的样本,是一个由可访问性筛选出来的样本,而筛选本身就是发现。这九次拒绝就是证据:即使对知名域名来说,爬虫访问也不是走过场。
它也让方法保持一种读者可以审计的诚实:每一行,包括那些让结果变差的行,都在 研究数据端点(英文);产生这些分数的规则集,则在 方法论页面上。