wger.de 的 Anubis 验证是什么?工作量证明如何阻挡爬虫
wger.de 打开后显示“正在确认你是不是机器人”,是因为网站管理员启用了 Anubis 来保护服务器。Anubis 由 Techaro 开发,采用类似 Hashcash 的工作量证明(Proof-of-Work)机制:对单个正常用户来说,额外计算负担可以忽略;但对大规模爬虫来说,累积成本会大幅增加,从而让爬取变得更困难。它需要浏览器启用 JavaScript 才能完成验证。
为什么 wger.de 要用 Anubis
网站管理员启用 Anubis 的直接原因,是避免 AI 公司大量爬取网站内容。这类高频抓取会导致服务器负载过高甚至崩溃,让所有用户都无法正常访问资源。
Anubis 被描述为一种“折中做法”和“占位符解决方案”:
- 它不直接封禁访问者,而是给每个访问者增加一点计算任务;
- 正常用户几乎感觉不到这点开销;
- 爬虫要发起成千上万次请求时,累加的计算成本就变得难以承受。
工作量证明是怎么起作用的
核心思路来自 Hashcash——最初用于减少垃圾邮件的机制。可以把它理解成一道“小型计算题”:
- 服务器要求浏览器计算一个满足特定条件的哈希值;
- 浏览器需要尝试多次才能找到答案;
- 找到后把结果提交给服务器,验证通过才放行。
对一个人来说,这只是一瞬间的事;但对需要海量请求的爬虫,每一次都要付出同样的计算代价,规模越大越不划算。
为什么你会卡在验证页面
页面提示“Anubis 无法载入所需的 JavaScript。服务器可能负载过高。请重新加载页面再试一次。”常见原因包括:
- JavaScript 未启用:Anubis 明确要求启用 JavaScript,无需 JavaScript 的解决方案仍在开发中;
- 浏览器插件拦截:像 JShelter 这类插件可能阻挡 Anubis 需要的现代 JavaScript 功能,需要为此域名停用该插件或类似插件;
- 服务器负载过高:页面本身提示服务器可能负载过高,重新加载可能恢复。
这个机制的未来方向
Anubis 被定位为过渡方案。其目标是争取时间,转向指纹识别和无头浏览器检测(例如通过它们如何进行字体渲染来识别),从而无需向更可能是合法用户的访问者展示工作量证明页面。
常见问题
wger.de 是什么网站? 现有资料只说明它由 Anubis 保护、运行版本为 v1.27.0,未提供网站具体内容信息,无法据此判断其业务类型。
通过验证需要付费或登录吗? 资料未提及任何价格或登录要求,不能推断为免费或无需登录。
为什么必须开 JavaScript? Anubis 依赖现代 JavaScript 功能完成工作量证明,页面明确说明必须启用 JavaScript 才能通过验证。