Ответ 1
У них не так много общего. Как вы уже видели, вам нужно развернуть своих пауков на scrapyd, а затем запланировать обходы. scrapyd - автономная служба, работающая на сервере, где вы можете развернуть и запустить каждый проект/паук, который вам нравится.
С помощью ScrapyRT вы выбираете один из своих проектов, а cd
- в этот каталог. Затем вы запускаете, например. scrapyrt
, и вы начинаете сканирование для пауков в этом проекте через простой (и очень похожий на scrapyd) REST API. Затем вы получаете обходные элементы назад как часть ответа JSON.
Это очень хорошая идея, и она выглядит быстро, худощаво и четко определена. Скрапид, с другой стороны, более зрелый и более общий.
Вот некоторые ключевые отличия:
- Scrapyd поддерживает несколько версий пауков и нескольких проектов. Насколько я могу видеть, если вы хотите запустить два разных проекта (или версии) с помощью ScrapyRT, вам придется использовать разные порты для каждого.
- Scrapyd предоставляет инфраструктуру для хранения элементов на сервере, а ScrapyRT отправляет их обратно на ответ, который для меня означает, что они должны быть в порядке нескольких МБ (вместо потенциально ГБ). Аналогично, способ logging обрабатывается в scrapyd более общий по сравнению с ScrapyRT.
- Scrapyd (потенциально постоянно) выполняет задания очередей и дает вам контроль над количеством процессов Scrapy, которые работают параллельно. ScrapyRT делает что-то простое, что, насколько я могу судить, - это начать обход для каждого запроса, как только поступит запрос. Блокирующий код в одном из пауков также блокирует других.
- ScrapyRT требует аргумент
url
, который, насколько я могу судить, переопределяет любую логикуstart_urls
.
Я бы сказал, что ScrapyRT и Scrapyd очень умно не перекрываются на данный момент времени. Конечно, вы никогда не знаете, какое будущее имеет.