我的scrapy程序只使用一个CPU核心,无论我CONCURRENT_REQUESTS
如何。如果scrapy中的某些方法可以在一个scrapy爬虫中使用所有cpu核心?
ps:在早期版本中似乎有争论max_proc
,但我现在找不到它。
答案 0 :(得分:2)
Scrapy不使用多个CPU。
这是设计使然。通常,Scrapy的瓶颈不是CPU,而是网络输入/输出。因此,即使使用单个CPU,Scrapy也可以比与multiprocessing
结合使用的同步框架或库(例如请求)更有效。
如果您的情况是CPU的瓶颈,则应该考虑让一个单独的,启用多处理的进程来处理CPU繁重的部分。
如果您仍然想在多个进程中运行Scrapy Spider,请参阅Running Scrapy from a script。您可以将其与Python的multiprocessing模块结合使用。或者,更好的是,使用Scrapyd或alternatives之一。