Согласно scrapy docs использование одного CrawlerProcess
для нескольких пауков должно выглядеть так:
import scrapy
from scrapy.crawler import CrawlerProcess
class Spider1(scrapy.Spider):
...
class Spider2(scrapy.Spider):
...
process = CrawlerProcess()
process.crawl(Spider1)
process.crawl(Spider2)
process.start()
настройка .. настройки для каждого паука могут быть выполнены с помощью custom_settings
атрибут паука
Scrapy имеет группу модулей, которые нельзя установить для каждого паука (только для CrawlerProcess
).
модулей, которые используют настройки, связанные с ведением журнала, SpiderLoader и twisted Reactor - уже инициализированы до того, как Scrapy прочитает паук custom_settings
.
Когда вы вызываете scrapy crawl ....
из инструмента командной строки - фактически вы создаете single CrawlerProcess
для одиночного паука, определенного в аргументах команды.
процесс завершается, как только завершает выполнение второй паук.
Если вы использовали те же версии пауков, которые ранее были запущены scrapy crawl...
, этого не ожидается.