5

在过去的一个月里,我一直在使用 Scrapy 进行我已经开始的网络爬虫项目。

该项目涉及从主页可访问的单个域名中提取所有网页的完整文档内容。使用 Scrapy 编写这个非常容易,但是它运行得太慢了。2-3天我只能拉下10万页。

我已经意识到我最初的想法是 Scrapy 不适合这种类型的爬行,这正在暴露自己。

我已经开始将目光集中在 Nutch 和Methabot上,以期获得更好的性能。在抓取过程中我需要存储的唯一数据是网页的全部内容,最好是页面上的所有链接(但即使这样也可以在后处理中完成)。

我正在寻找一个快速且采用许多并行请求的爬虫。

4

3 回答 3

5

这是服务器的错,而不是 Scrapy。服务器可能没有您想要的那么快,或者可能是它(或网站管理员)检测到此连接/cookie 的爬行并限制速度。你用代理吗?这也可能会减慢爬行速度。这可能是 Scrapy 的智慧,如果你爬得太密集,你可能会被这个服务器禁止。对于我的 C++手写爬虫,我人为地设置了每秒 1 个请求的限制。但是这个速度对于 1 个线程来说已经足够了(1 req * 60 secs * 60 minutes * 24 hours = 86400 req / day)。如果您有兴趣,您可以写电子邮件至whalbot.helmsman {AT} gmail.com。

于 2010-09-02T13:58:30.403 回答
2

Scrapy 允许您在其设置中确定并发请求的数量和请求之间的延迟。

于 2010-09-07T00:24:04.243 回答
0

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

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

于 2010-09-19T19:57:25.627 回答