机器人 txt 文件中的大括号

Curly braces in robots txt file

我一直致力于网络抓取并在一个 robots.txt 文件中遇到了以下模式。

Disallow: /*{{url}}*
Disallow: /*{{imageURL}}*

他们的意思是不允许我刮任何 URL 吗?

这看起来像是网站作者犯了一个错误,因为 {{url}}{{imageURL}} 可能是应该用实际值替换的变量。

根据原始 robots.txt 规范解释此记录时,所有字符都必须按字面解释,因此 URL 不允许这样:

  • https://example.com/*{{url}}*
  • https://example.com/*{{url}}*.bar
  • https://example.com/*{{url}}*/
  • https://example.com/*{{url}}*/foo

由于 {} 不允许出现在 URL 路径 (list of allowed characters) 中,这意味着所有 URL 都是允许被抓取。但是,如果您愿意,可以假设它适用于 {/} 的百分比编码形式,但这不是规范所要求的。

根据 robots.txt 规范的流行扩展(例如 as used by Google Search)解释此记录时,* 具有特殊含义:每个 * 在一个Disallow 值可以不替换任何字符或任何字符序列。这将导致更多不允许的 URL,但它们仍然必须按字面意思包含 {{url}}{{imageURL}}.