Добрый день.
Стоит задача парсить сайты, на подобии avito.ru
Сайтов больше 20, под каждый сайт написан свой spider
Данные парсятся, и записываются в базу данных через Pipeline (один для всех)
Вопрос: как запустить парсер, что бы он работал все время?
Запустил 20 спайдеров, и что бы каждый, независимо от других, после окончания запускался заново.
Пробовал через CrawlerProcess и CrawlerRunner, reactor, но у меня не получилось. Спайдер запускался 1 раз, а на втором запуске ошибка, что proccess (или reactor) нельзя перезапустить.
Пока что решил задачу вот таким bash-скриптом:
#!/bin/bash
cd '/path/to/spider/folder'
while [ True ]
do
scrapy crawl my_spider_1
scrapy crawl my_spider_2
scrapy crawl my_spider_3
sleep 15
done
Добавил задание в cron, что бы запускался при перезагрузке сервера.
Все работает, но подозреваю что есть лучшее решение.
UPD:
Может кто то посажает другой инструмент для парсинга, который решит данную задачу?