详解
robots.txt 是一项可追溯至1994年的惯例:位于域名根目录下的纯文本文件,列出了哪些用户代理(爬虫)被允许或禁止访问哪些 URL 路径。搜索引擎(Google、Bing)及行为规范的爬虫会遵守该文件。该文件可公开读取——你可以直接获取任何网站的 robots.txt(`curl https://example.com/robots.txt`),查看网站所有者希望爬虫如何操作。
Robots Exclusion Protocol 纯属建议性协议。Web 服务器不会强制执行 robots.txt 指令——它只是将其发布出来。行为不当的爬虫可以忽略 robots.txt,网站仍会响应所请求的 URL。执行力来自搜索引擎政策(Googlebot 不会索引 robots.txt 中被禁止的页面),以及商业爬虫无视网站所有者明确意图时所面临的法律与声誉后果。
对于商业爬取,robots.txt 在两方面至关重要。从法律角度看,忽略明确的 `Disallow` 指令可被视为 CFAA / 计算机滥用案件中恶意访问的证据(尤其是在美国 hiQ 诉 LinkedIn 裁决之后)。从操作角度看,禁止特定路径的网站通常会在这些路径上部署更强的反爬虫防护——`Disallow: /search` 通常意味着爬取 `/search` 将触发比爬取网站其他部分更严密的防御措施。
工作原理
当爬虫在某个域名上启动时,它会首先获取 `/robots.txt` 并解析其中的指令。该文件使用简单的语法:`User-agent:
爬虫随后会对每个准备抓取的 URL 与规则进行比对,并跳过被禁止的路径。部分爬虫会将 robots.txt 缓存 24 小时;成熟的生产级爬虫则会更频繁地刷新,以捕获最新变更。