Robots.txt和未引用的位置

时间:2011-05-04 13:58:55

标签: web-crawler robots.txt

如果我想保护文件夹不被符合标准的机器人抓取,我可以从robots.txt中禁止它。

现在,我得到的问题是,通过隐藏文件夹,我向其他人展示了它的存在。

那么,如果没有链接,我是否必须指定我不想在robots.txt中抓取的文件夹? “好”抓取工具只能正确跟踪链接,他们不会随机搜索文件夹和文件。

谢谢。

2 个答案:

答案 0 :(得分:2)

由于Disallow中的robots.txt行是前缀,您只需提及“隐藏”目录的前缀,它不与任何“公共”目录共享。

因此,如果您的“隐藏”目录被称为/topsecrete_donotread/,那么您可以使用Disallow: /tops来避免对其进行抓取。

答案 1 :(得分:2)

作为“优秀”网络抓取工具的作者,请允许我向您保证,如果Web上可以公开访问某些内容,则抓取工具找到它。如果您创建一个像http://example.com/hidden_folder这样的文件夹,并认为通过不发布链接,没有人会发现它,你错了。这不比把门钥匙藏在门垫下好。虽然抓取工具可能不会搜索hidden_folder,但其他人会搜索。当他们找到它时,他们会发布一个链接,我的抓取工具会找到该链接。

即使没有人去寻找你的隐藏文件夹,也会发生同样的事情。例如,假设您有一个文件http://example.com/hidden_folder/bookmarks.html。在其中,您可以链接到所有喜爱的网站。

当您点击其中一个链接(例如,joesblog.com)时,您的浏览器发送给joesblog.com的请求包括引用网址 - 您的“隐藏”文件夹中的html文件。

您会惊讶地发现有多少网站发布其访问日志。如果joesblog是其中之一,那么在该网站的某个位置,您将看到一个文件,实际上说“joesblog.com是从http://example.com/hidden_folder/bookmarks.html访问的。”

正如其他人所说,通过默默无闻的安全措施不起作用。如果您的站点上有一些您不想访问的信息,请使用密码或其他方法保护它。不要以为爬虫或人们不会因为你没有明确地告诉他们而找不到它。

编辑:

如果您没有在robots.txt文件中列出文件夹,那么机器人会在给定链接的情况下抓取这些文件夹。如果你确实列出了文件夹,那么“好”机器人将不会抓取。 “坏”机器人无论如何都会爬行​​。

在我看来,为了找到隐藏目录的链接,有人阅读你的robots.txt的可能性低于通过其他方式发现这些链接的可能性。我建议使用@Joachim提出的解决方案,这将阻止“好”机器人抓取,并且不会显示确切的目录名称。

此外,如果您禁用目录列表并且文件夹中没有默认页面,那么前往http://example.com/hidden_folder/的机器人将不会得到任何错误消息,说明目录内容不能列出。