跳转到内容

Robots.txt

来自轻之舟百科

明白您的要求。以下是严格遵循 MediaWiki 语法、使用 [1]。该协议基于自愿遵守原则,并非所有爬虫均会遵从。Robots.txt 文件通常与站点地图(Sitemap)配合使用,以优化搜索引擎对网站内容的索引效率[2]

Robots.txt
中文名 机器人排除协议文件
英文名 Robots.txt
别称 Robots Exclusion Protocol (REP)
发布年份 1994年
标准化年份 2022年(RFC 9309)
提出者 Martijn Koster
文件扩展名 .txt
MIME类型 text/plain
存放位置 网站根目录(如 https://caellab.com/robots.txt)

Robots Exclusion Protocol 由 Martijn Koster 于 1994 年 2 月在 www-talk 邮件列表中首次提出,当时他就职于 Nexor 公司[3]。Koster 提出该标准的直接诱因是作家 Charles Stross 编写的一个行为不当的网络爬虫对其服务器造成了拒绝服务攻击,促使 Koster 寻求一种能够让网站管理员与爬虫进行“协商”的解决方案[3]

该方案迅速成为事实上的行业标准,绝大多数搜索引擎运营商的爬虫均选择遵守,包括 WebCrawler、Lycos 等早期搜索引擎。在此后近三十年间,该协议通过广泛实践不断演进,直至 2022 年,互联网工程任务组(IETF)正式将其发布为 RFC 9309 标准文件,标志着 Robots Exclusion Protocol 正式成为互联网官方标准[4]

技术规格

[编辑 | 编辑源代码]

文件存放位置

[编辑 | 编辑源代码]

Robots.txt 文件必须存放于网站主机的根目录下,并通过统一资源标识符(URI)/robots.txt 访问。例如,对于域名 https://www.example.com,其 robots.txt 文件的访问地址即为 https://www.example.com/robots.txt。每个网站仅允许存在一个 robots.txt 文件。该文件为 UTF-8 编码的纯文本文件,不可使用文书处理软件创建,以免引入不兼容字符[2]

核心语法与指令

[编辑 | 编辑源代码]

Robots.txt 由若干规则块(rule block)组成,每个规则块以 User-agent 指令起始,后接若干条 Disallow 及 Allow 指令[4]

  • User-agent:指定该规则块所适用的爬虫名称。星号“*”为通配符,表示适用于所有爬虫。
  • Disallow:指示爬虫不得访问以指定路径开头的网址。若值为“/”,则禁止爬虫访问网站全部内容。
  • Allow:指示爬虫允许访问以指定路径开头的网址。该指令通常与 Disallow 配合使用,为部分爬虫开放特定路径。
  • Sitemap:指示站点地图文件的位置,可独立于 User-agent 块单独声明。该指令虽未纳入 RFC 9309 标准,但获得了所有主流搜索引擎的支持[2]

语法示例:

User-agent: Googlebot
Disallow: /nogooglebot/
User-agent: *
Allow: /
Sitemap: https://www.example.com/sitemap.xml

上述规则的含义为:名为 Googlebot 的爬虫不得访问路径以 /nogooglebot/ 开头的任何网址;其余所有爬虫则允许访问全站。

通配符与匹配规则

[编辑 | 编辑源代码]

部分搜索引擎在其实现中支持通配符字符。星号“*”可匹配任意字符序列(含空序列),美元符号“$”用于匹配行尾。这些通配符规则不属于 RFC 9309 标准核心,但在 Google、Bing 等主流搜索引擎的实现中得到了支持[5]

局限性与安全注意事项

[编辑 | 编辑源代码]

Robots Exclusion Protocol 基于自愿遵守原则。恶意爬虫(如垃圾邮件发送者、电子邮件地址收集器、恶意软件扫描器)和安全漏洞扫描器常常完全忽略 robots.txt 中的指令[6]

Robots.txt 不得作为安全访问控制机制使用。该文件公开可访问,将其用于屏蔽敏感目录或文件非但不能起到保护作用,反而会向潜在攻击者主动暴露网站受限区域的位置。OWASP 基金会亦明确指出,robots.txt 不应被视作限制第三方访问、存储或重新发布网络内容的有效机制[6]。如网站管理员确实需要阻止对特定内容的访问,应使用服务器端访问控制机制(如 HTTP 身份验证或 IP 地址限制)等替代方案[2]

应用与影响

[编辑 | 编辑源代码]

搜索引擎优化

[编辑 | 编辑源代码]

在搜索引擎优化(SEO)实践中,Robots.txt 文件被广泛用于管理网站的“抓取预算”——即搜索引擎在特定时间内对网站发起请求的频率和数量上限。通过合理配置 robots.txt 禁止爬虫访问低价值页面(如重复内容、内部搜索结果页、管理后台等),网站管理员可引导爬虫将抓取资源集中于重要内容上[2]。Google 已开源其 robots.txt 解析器,供开发者参考使用[7]

搜索引擎的实现

[编辑 | 编辑源代码]

主流搜索引擎对 robots.txt 标准的实现存在细微差异,主要体现在对通配符的支持、对 Allow 指令的处理顺序等方面。Google 建议网站管理员使用其 Search Console 中的 robots.txt 测试工具对文件进行验证[5]。Bing 亦在其 Bing Webmaster Tools 中提供了类似功能,协助网站管理员分析 robots.txt 文件并识别可能影响抓取效率的问题[8]

人工智能爬虫

[编辑 | 编辑源代码]

随着人工智能技术的发展,Robots Exclusion Protocol 被越来越多地用于管理以数据采集为目标的 AI 爬虫行为。RFC 9309 标准正被探讨扩展至 AI 领域,以便内容所有者通过 robots.txt 文件表达其内容是否可用于大语言模型的训练[4]

参考文献

[编辑 | 编辑源代码]
  1. 标签进行标注,并符合百科格式的精确词条。 Robots.txt(全称:Robots Exclusion Protocol,缩写 REP)是一种存放于网站根目录的纯文本文件,用于向网络爬虫(Web Crawler)及各类网络机器人(Internet Bot)发出访问指令,告知其网站中哪些内容允许被抓取、哪些内容禁止被抓取<ref name=":0">RFC 9309: Robots Exclusion Protocol
  2. 2.0 2.1 2.2 2.3 2.4 Google 搜索中心: Robots.txt 简介
  3. 3.0 3.1 Origin of the robots.txt protocol
  4. 4.0 4.1 4.2 引用错误:<ref>标签无效;未给name(名称)为:0的ref(参考)提供文本
  5. 5.0 5.1 Google 搜索中心: Robots.txt 详情与高级语法
  6. 6.0 6.1 OWASP: Information exposure through robots.txt
  7. Google robots.txt parser on GitHub
  8. Bing Webmaster Tools Help