适用于 Gemini 的 robots.txt
译注:本页翻译更新于2025年6月9日
简介
本文档描述了一种对网页领域事实标准 robots.txt 机制的改编,用于控制自动化客户端(以下简称“爬虫”)对 Gemini 资源的访问。
Gemini 服务器管理员可以使用 robots.txt 以机器可读的格式表达其对爬虫的访问策略。
自动化 Gemini 客户端的作者(例如搜索引擎爬虫、网页代理等)强烈建议检查是否存在此类策略,并在发现时遵守它们。
服务器管理员应了解无法强制执行 robots.txt 策略,必须准备使用如防火墙规则等方法来阻止违规爬虫访问。这在 Gemini 和网页领域都是一样的。
基础规则
Gemini 服务器管理员可以在其服务器的 /robots.txt 路径提供爬虫策略。例如,服务器 example.net 应将其策略提供在 URL:gemini://example.net/robots.txt。
robots.txt 文件应使用 MIME 类型 text/plain 提供。
robots.txt 文件的格式应符合网页原始 robots.txt 规范,即:
- 以 # 开头的行为注释
- 以 User-agent: 开头的行表示后续规则所适用的用户代理
- 以 Disallow: 开头的行表示禁止爬虫请求的 URL 路径前缀
- 所有其他行将被忽略
Gemini 与网页中 robots.txt 唯一的重要区别在于:由于 Gemini 管理员无法轻易获知哪些爬虫正在访问他们的网站以及访问目的(因为 Gemini 客户端不发送 User-Agent 头),因此建议 Gemini 爬虫依据其用途/功能遵守对“虚拟用户代理”的指令。相关定义如下。
尽管如此,Gemini 爬虫仍应遵守针对 User-agent: * 的 robots.txt 指令,也可以遵守针对其自己明确公开的用户代理所设定的指令(例如公开服务所提供的 Gemini 页面上所声明的 User-Agent)。
虚拟用户代理
以下是多个“虚拟用户代理”(Virtual User Agents)的定义,它们分别对应某些常见类别的爬虫。Gemini 爬虫应遵守针对其活动对应的虚拟用户代理的 robots.txt 指令。
显然,不可能为这些虚拟代理给出完美、无歧义的定义。爬虫作者应尽量保持谨慎,优先考虑遵循本机制的“精神”而非字面解释。
如果某个爬虫同时符合多个虚拟用户代理的定义,且无法对行为进行细粒度适配,则应遵守所有相关用户代理指令中*最严格*的一组规则。
归档爬虫
用于抓取内容并构建 Geminispace 的公开长期归档(即便原始内容已更改或消失仍可访问),类似于 archive.org 的“时光机”,此类 Gemini 爬虫应遵守针对 User-agent: archiver 的 robots.txt 指令。
索引爬虫
用于抓取内容并构建 Geminispace 可搜索索引的 Gemini 爬虫,应遵守针对 User-agent: indexer 的 robots.txt 指令。
研究爬虫
用于研究 Geminispace 的大规模统计特性(例如域名/页面数量、MIME 媒体类型分布、响应大小、TLS 版本、失效链接频率等),但不对抓取内容进行再发布、链接或搜索的 Gemini 爬虫,应遵守针对 User-agent: researcher 的 robots.txt 指令。
网页代理
用于抓取 Gemini 内容,并将其转换为 HTML 后通过 HTTP(S) 提供公开访问(以便普通网页浏览器可访问 Geminispace)的 Gemini 爬虫,应遵守针对 User-agent: webproxy 的 robots.txt 指令。