Robots.txt命令

我在www.example.com/A/B/C/NAME(A,B,C变化,NAME是静态的)有一堆文件,我基本上想在robots.txt中添加一个命令,所以爬虫不会跟随任何这样的链接,最后有NAME。

什么是最好的命令在这个robots.txt使用?

这是不能做到的。 robots.txt没有官方的标准,这只是各种networking爬虫试图尊重和正确解释的惯例。

不过Googlebot支持通配符 ,所以你可以有这样的部分:

 User-agent: Googlebot Disallow: /*NAME 

因为大多数networking爬虫不会正确地解释通配符,谁知道他们如何解释它,可能是孤立这个规则只是为了googlebot可能是安全的,但我想现在每个大型search引擎可以支持它,以及任何谷歌search成为事实上的标准。

  User-agent: googlebot Disallow: /*NAME User-Agent: slurp Disallow: /*NAME 

我看到你在Stack Overflow上发布了这个消息,但是我也会在这里提供我的答案。

不幸的是,你不能在Disallow行中使用glob,所以没有通配符。 您需要为每个要排除的目录设置一个禁止行。

 User-agent: * Disallow: /A/B/C/NAME/ Disallow: /D/E/F/NAME/ 

这是不幸的,但标准是非常简单的,这是如何做的。 另外请注意,你必须有尾随/在你的禁止线。 这是使用robots.txt的一个相当好的参考 。

据我所知,没有robots.txt文件parsing器支持的模式匹配例程。 在这种情况下,您需要用自己的Disallow语句列出每个文件。

请记住,在robots.txt文件中列出这些文件将给出所有可能想要查看您要从搜寻器中“隐藏”什么的链接的链接列表,因此可能存在安全问题是敏感的材料。

如果这些链接是由您的服务器提供的HTML格式的,您也可以在这些链接上添加一个rel="nofollow"到A标签,这样可以防止大多数抓取工具跟随链接。

如前所述,robots.txt规范非常简单。 然而,我所做的一件事就是创build一个名为“robots.txt”的dynamic脚本(PHP,Python等),并使用脚本的更智能的逻辑巧妙地生成预期的简单结构。 你可以走子目录,使用正则expression式等等

您可能需要稍微调整一下您的networking服务器,以便将其作为脚本执行“robots.txt”,而不仅仅是提供文件内容。 或者,您可以通过一个cron作业来运行一个脚本,该脚本每晚重新生成一次robots.txt(或者通常需要更新)

不幸的是,你不能在Disallow行中使用glob,所以没有通配符。 您需要为每个要排除的目录设置一个禁止行。

 User-agent: * Disallow: /A/B/C/NAME/ Disallow: /D/E/F/NAME/ 

这是不幸的,但标准是非常简单的,这是如何做的。 另外请注意,你必须有尾随/在你的禁止线。 这是使用robots.txt的一个相当好的参考 。

我见过的最好的文档是在robotstxt.org上 。