Каждый, даже документы, предлагают использовать внутренний API для автора «сценарий запуска», который контролирует запуск и остановку нескольких пауков. Тем не менее, это связано с большим количеством предостережений, если вы не получите его абсолютно правильно (feedexports не работает, скрученный реактор либо не останавливается, либо останавливается слишком рано и т. Д.).
На мой взгляд, у нас есть известная работающая и поддерживаемая команда scrapy crawl x
, и поэтому гораздо более простой способ справиться с этим - использовать GNU Parallel to parellize.
После установки, запустить (из оболочки) один SCRAPY паук на ядро и если вы хотите, чтобы запустить все те, в вашем проекте:
scrapy list | parallel --line-buffer scrapy crawl
Если у вас есть только одно ядро, вы можете играть вокруг с аргументом --jobs
для GNU Parallel. Например, следующее будет выполняться по 2 заданиям на лунку на ядро:
scrapy list | parallel --jobs 200% --line-buffer scrapy crawl
Вам нужно запустить несколько экземпляров одного и того же паука или группы разных пауков? – Talvalin
У меня много пауков в папке моего проекта «пауки». & Я хочу запустить все из них одним выстрелом, вместо того, чтобы запускать «scrapy crawl» для каждого из них. Также я хотел бы знать, есть ли способ автоматизировать эту задачу, например, запускать сканирование каждый час. Спасибо – elhoucine