我正在使用Scrapy和Selenium创建一个网络爬虫。
代码如下所示:
lib.rs
问题是爬虫运行一段时间然后由于内存不足而崩溃。 Scrapy会不断从列表中安排新的URL,因此运行的Web驱动程序进程太多了。
有没有办法控制Scrapy调度程序在运行一定数量的Web驱动程序进程时不安排新URL?
答案 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"])