网络爬虫排除协议
网络爬虫排除协议, 英文为: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 9309 是
robots.txt
文件的官方标准文档。 - 参考文档:RFC 9309 - Robots Exclusion Protocol
5. 总结
robots.txt
文件是网站与爬虫通信的重要工具,用于控制爬虫的访问权限。- 它的规范最初由 Martijn Koster 提出,并在 2019 年被 IETF 正式标准化为 RFC 9309。
- 尽管
robots.txt
文件是非强制性的,但大多数合法的爬虫(如 Googlebot、Bingbot 等)都会遵守其规则。
如果你需要创建或修改 robots.txt
文件,建议参考 RFC 9309 或 Google 的文档 以确保兼容性。