网络爬虫排除协议

网络爬虫排除协议, 英文为:Robots Exclusion Protocol

robots.txt 文件是网站用来与网络爬虫(如搜索引擎爬虫)通信的标准文件,用于指示哪些页面或目录可以被抓取,哪些不可以。 它的规范由 Robots Exclusion Protocol(REP)定义,最初由 Martijn Koster 在 1994 年提出,并逐渐成为互联网标准。

以下是 robots.txt 文件的规范及其标准来源的详细介绍:


1. robots.txt 文件的基本规范

robots.txt 文件是一个纯文本文件,通常放置在网站的根目录下(例如:https://example.com/robots.txt)。它的语法规则如下:

1.1 User-agent

  • 用于指定规则适用的爬虫。
  • User-agent: * 表示规则适用于所有爬虫。
  • 可以指定特定的爬虫,例如: User-agent: Googlebot User-agent: DotBot

1.2 Disallow

  • 用于禁止爬虫访问某些页面或目录。
  • 例如: Disallow: /private/ Disallow: /admin/ 表示禁止爬虫访问 /private//admin/ 目录。

1.3 Allow

  • 用于允许爬虫访问某些页面或目录(通常与 Disallow 配合使用)。
  • 例如: Disallow: /private/ Allow: /private/public/ 表示禁止访问 /private/ 目录,但允许访问 /private/public/ 目录。

1.4 Sitemap

  • 用于指定网站的 XML Sitemap 文件位置。
  • 例如: Sitemap: https://example.com/sitemap.xml

1.5 注释

  • 使用 # 添加注释,注释内容不会被爬虫解析。
  • 例如: # This is a comment User-agent: * Disallow: /temp/

2. robots.txt 文件的示例

以下是一个典型的 robots.txt 文件示例: ``` # Block all crawlers from /private/ and /admin/ User-agent: * Disallow: /private/ Disallow: /admin/

# Allow Googlebot to access /public/
User-agent: Googlebot
Allow: /public/

# Block DotBot from all pages
User-agent: DotBot
Disallow: /

# Specify the sitemap location
Sitemap: https://example.com/sitemap.xml
```

3. robots.txt 文件的注意事项

  • 大小写敏感:路径和文件名是大小写敏感的。例如,Disallow: /Private/Disallow: /private/ 是不同的。
  • 通配符支持:大多数爬虫支持简单的通配符(如 *),但这不是官方标准的一部分。
  • 优先级:如果有多条规则匹配,爬虫通常会遵循最具体的规则。
  • 非强制性robots.txt 文件是一种建议性规范,爬虫可以选择是否遵守。恶意爬虫可能会忽略它。
  • 文件位置robots.txt 必须放置在网站的根目录下,否则爬虫无法找到它。

4. 标准来源

robots.txt 文件的规范最初由 Martijn Koster 在 1994 年提出,并逐渐被广泛采用。以下是其标准来源:

4.1 原始提案

  • 作者:Martijn Koster
  • 时间:1994 年
  • 文档:原始的 REP 规范可以在以下链接找到: The Web Robots Pages

4.2 互联网草案

  • REP 被提交为互联网草案(Internet Draft),但从未成为正式的 RFC(Request for Comments)。
  • 尽管如此,它被广泛接受并成为事实上的标准。

4.3 Google 的扩展

  • Google 对 robots.txt 文件进行了一些扩展,例如支持通配符 (*) 和 $(表示 URL 结尾)。
  • 这些扩展被许多爬虫采用,但并非官方标准的一部分。
  • 参考文档:Google Robots.txt Specifications

4.4 正式标准化

  • 2019 年,robots.txt 文件规范被正式提交为互联网标准,并由 IETF(Internet Engineering Task Force)发布为 RFC 9309
  • RFC 9309robots.txt 文件的官方标准文档。
  • 参考文档:RFC 9309 - Robots Exclusion Protocol

5. 总结

  • robots.txt 文件是网站与爬虫通信的重要工具,用于控制爬虫的访问权限。
  • 它的规范最初由 Martijn Koster 提出,并在 2019 年被 IETF 正式标准化为 RFC 9309
  • 尽管 robots.txt 文件是非强制性的,但大多数合法的爬虫(如 Googlebot、Bingbot 等)都会遵守其规则。

如果你需要创建或修改 robots.txt 文件,建议参考 RFC 9309Google 的文档 以确保兼容性。