跳至正文
中文
立即开始

robots.txt

robots.txt 是放在网站根目录下的公开文件,用于告知遵守该协议的网络爬虫哪些 URL 路径可以访问、哪些不可以。

文章目录(8 个章节)

robots.txt 的工作原理

遵守该协议的网络爬虫在访问网站前,通常会先请求 /robots.txt,例如 https://example.com/robots.txt。文件按爬虫标识将路径规则分成一组或多组。爬虫会选择与自身标识匹配的规则组,再用该组规则检查每个要请求的 URL。

User-agent: *
Disallow: /account/
Disallow: /checkout/
Allow: /account/help/
Sitemap: https://example.com/sitemap.xml

这些规则要求所有匹配的爬虫不要访问 /account/ 和 /checkout/,但可以访问 /account/help/。规则重叠时,以匹配路径更具体的规则为准。

常用指令

  • User-agent: 指定后续规则适用的爬虫。星号匹配没有更具体规则组的爬虫。
  • Disallow: 指定爬虫不应请求的路径。值为空时不会禁止任何路径。
  • Allow: 在范围更广的禁止规则中设置例外。
  • Sitemap: 指向用于发现 URL 的站点地图,但不代表允许采集这些 URL。

有些文件包含 Crawl-delay,但该指令没有标准化,不同爬虫对它的支持也不同。

robots.txt 对网页采集的重要性

robots.txt 用于说明网站所有者对网站采集的偏好。它本身不会强制限制访问,需要愿意配合的客户端主动遵守。开始网页采集前应先检查该文件,新增源站时也要检查。

轮换代理会改变网站看到的 IP 地址,但不会改变 robots.txt 规则,也不会让原本禁止访问的路径变得可以访问。不同爬虫身份可能适用不同规则,因此不要冒充其他身份来获取限制较少的规则。

如何负责任地采集

  1. 获取根目录文件。 协议、主机和端口的不同组合可以有各自的规则,包括不同的子域名。
  2. 使用合适的解析器。 路径大小写、编码字符和重叠规则都可能影响结果。
  3. 排除禁止采集的 URL。 不要利用 IP 轮换绕过已公开的限制。
  4. 控制请求频率。 访问允许采集的路径时,应保持合理的并发;出现限速或 429 响应时,应降低请求频率。
  5. 遵守其他限制。 robots.txt 不能替代网站条款,也不代表有权访问受保护的内容。

该文件公开可见,并非安全控制措施。敏感页面仍需使用认证和服务器端授权来保护。

常见问题

robots.txt 应放在哪里?

它应位于网站的确切根路径,例如 https://example.com/robots.txt。位于 /folder/robots.txt 的文件不能控制该网站的采集。

robots.txt 会阻止网页采集吗?

从技术上说不会。这是一项自愿协议,合规的爬虫会遵循它;它不是防火墙或访问控制系统。

Disallow 能阻止网页出现在搜索结果中吗?

不能保证。Disallow 控制的是采集,而不是收录。搜索引擎即使没有获取网页内容,也可能通过链接发现该 URL。

相关术语

查看全部术语