线程是否违反了robots.txt?

时间:2011-06-06 17:50:29

标签: multithreading web-scraping robots.txt web-crawler

我是新手,我最近意识到线程可能是快速抓取网站的方法。在我开始黑客攻击之前,我认为确定是否最终会让我受到限制可能是明智的。所以问题是,如果我重写我的程序以使用线程来更快地抓取,那会违反大多数网站的robots.txt吗?

2 个答案:

答案 0 :(得分:1)

取决于:如果您的线程有自己独立的URL队列以进行爬网,并且任何类型的队列之间没有同步,那么当两个(或更多)线程尝试爬网时,您最终可能会违反站点的robots.txt快速连续的同一站点的URL。当然a well designed crawler不会这样做!

非常“简单”的抓取工具具有某种共享优先级队列,其中工作按照各种机器人排除协议进行排队,并且所有线程都会从该队列中提取URL。这种方法存在许多问题,特别是在尝试扩展和爬行整个World Wild Web时。

更高级的抓取工具执行“预算”计算(see the BEAST budget enforcement section),这使他们能够智能地按照各种标准安排抓取:垃圾邮件指示器,robots.txt,覆盖率与新鲜度等。预算执行使其更容易多线程抓取工具可以快速抓取并礼貌地抓取!

答案 1 :(得分:0)

他们是无关的。 robots.txt表示您是否被允许访问某些内容。它没有办法说“请在一份书中只发送一个请求”。