使用Scrapy时,Selenium Web驱动程序实例太多

时间:2018-03-09 20:12:09

标签: python selenium selenium-webdriver scrapy web-crawler

我正在使用Scrapy和Selenium创建一个网络爬虫。

代码如下所示:

lib.rs

问题是爬虫运行一段时间然后由于内存不足而崩溃。 Scrapy会不断从列表中安排新的URL,因此运行的Web驱动程序进程太多了。

有没有办法控制Scrapy调度程序在运行一定数量的Web驱动程序进程时不安排新URL?

3 个答案:

答案 0 :(得分:0)

您可以尝试将CONCURRENT_REQUESTS设置为低于默认16 (as shown here)的内容:

class MySpider(scrapy.Spider):
    # urls = [/* a very long list of url */]
    custom_settings = {
        'CONCURRENT_REQUESTS': 5  # default of 16 seemed like it was too much?
    }

答案 1 :(得分:0)

尝试使用driver.quit()代替driver.close()

答案 2 :(得分:0)

尽管使用了driver.close(),我遇到了同样的问题然后我这样做了,在脚本启动之前杀死所有的firefox实例。

from subprocess import call
call(["killall", "firefox"])