有没有办法减少Scrapy的内存消耗?

时间:2017-08-19 12:53:54

标签: python python-3.x web-scraping scrapy

我试图用Scrapy刮掉一个相当大的网站(大约有一百万页)。蜘蛛工作得很好,它能够刮掉几千页,然后由于内存不足而不可避免地崩溃。

我尝试的事情:

  • 使用-s JOBDIR=<DIRECTORY>:这给了我一个初步改进,我能够抓取大约两倍于前一种方法的URL数量。然而,即使有了这个选项,Scrapy的内存消耗也会慢慢增加,直到它被内存不足的杀手杀死。
  • 防止不必要的功能,例如通过将日志限制从DEBUG提高到INFO来防止过多的输出。
  • 使用yield语句而不是返回数组。
  • 将返回的数据保持在绝对最小值。
  • 在更强壮的机器上运行蜘蛛:这有助于我爬行更多,但不可避免地会在以后再次崩溃(而且我不会接近100万分)。

我有什么遗漏可以帮助我完成刮擦吗?

0 个答案:

没有答案