2010-08-06 55 views
5

在过去的一个月中,我一直在使用Scrapy开展一个网络爬虫项目。最佳网络图爬行速度?

该项目涉及从主页可访问的单个域名中拉下所有网页的全部文档内容。使用Scrapy编写它非常简单,但运行速度太慢。在2-3天内,我只能打10万页。

我意识到我最初的观点认为Scrapy并不适合这种类型的抓取,这是在揭示它自己。

我已经开始专注于Nutch和Methabot,希望有更好的表现。我需要在抓取过程中存储的唯一数据是网页的全部内容,并且最好是页面上的所有链接(但即使这些数据可以在后期处理中完成)。

我在寻找一种快速并使用许多并行请求的爬网程序。

回答

5

这是我的错,服务器不是Scrapy。服务器可能没有你想要的那么快,也可能是它(或网站管理员)检测到抓取并限制此连接/ cookie的速度。 你使用代理服务器吗?这也可能会减慢爬行速度。 这可能是Scrapy的智慧,如果你爬得太紧密,你可能会禁止在这台服务器上。对于我的C++ handwritten crawler我人为地设置了每秒1个请求的限制。但是这个速度足够用于1个线程(1个请求* 60秒* 60分钟* 24个小时= 86400个请求/天)。如果你感兴趣,你可以写信给whalebot.helmsman {AT} gmail.com。

+0

它也可能是你的ISP。 – 2013-02-12 18:22:06

2

Scrapy允许您确定并发请求的数量和its settings中的请求之间的延迟。

0

你知道瓶颈在哪里吗?正如whalebot.helmsman所指出的那样,这个限制可能不在Scrapy本身,而是在你爬行的服务器上。

您应该首先找出瓶颈是网络还是CPU。