所有大型Web爬虫缓存robots.txt一段时间。有一天是很常见的,而且在过去我已经看到一次只要一个星期。我们的抓取工具的最长缓存时间为24小时。实际上,除了我们经常抓取的网站外,通常情况下这个数字会小于这个数字。
如果您持有等待将来版本的robots.txt的链接,那么您会为抓取添加一个人为的24小时延迟。也就是说,如果您今天抓取了我的网站,那么在再次下载我的robots.txt文件之前,您必须将所有这些链接保留多达24小时,并确认当时允许抓取的链接已被允许。你可能会错误,因为你是对的。比方说,会发生以下情况:
2011-03-08 06:00:00 - You download my robots.txt
2011-03-08 08:00:00 - You crawl the /humans-only/ directory on my site
2011-03-08 22:00:00 - I change my robots.txt to restrict crawlers from accessing /humans-only/
2011-03-09 06:30:00 - You download my robots.txt and throw out the /humans-only/ links.
在你爬的时候,你都可以访问该目录中,所以不存在与您发布的链接没有问题。
当您下载robots.txt以确定您是否被允许在当时读取这些文件时,您可以使用Web服务器返回的上次修改日期,但返回上次修改日期时存在大量服务器。一些很大的比例(我不记得它是什么)总是返回当前日期/时间作为最后修改日期,因为它们的所有内容(包括robots.txt)都是在访问时生成的。
而且,并称限制你的机器人意味着你将不得不再次访问他们的robots.txt文件,即使你不打算抓取他们的网站。否则,链接将在缓存中衰减。你提出的技术引发了很多你无法妥善处理的问题。您最好的选择是使用您手边的信息进行操作。
大多数网站经营者了解关于robots.txt缓存,并会寻找其他方式,如果你的机器人击中24小时的robots.txt变化的内其网站上受限制的目录。当然,前提是您没有阅读robots.txt,然后继续爬行受限制的页面。在对这些行为提出质疑的少数人中,对发生事件的简单解释通常就足够了。
只要你是什么你的履带正在做开了,你提供的网站运营商与您联系的方式,大部分误解很容易被纠正。有几个 - 很少 - 会指责你做各种恶劣活动的人。与他们最好的打赌是道歉造成问题,然后阻止你的机器人访问他们的网站。
如果它的地址出现在robots.txt中,您是不是应该删除页面的缓存?就好像页面会返回404一样? 当然我对历史不感兴趣,所以这里可能有所不同。 – hultqvist 2011-03-10 08:23:28