@hebrian_vasyl
Веб-разработчик

Как правильно запустить парсер на Scrapy?

Добрый день.
Стоит задача парсить сайты, на подобии 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:
Может кто то посажает другой инструмент для парсинга, который решит данную задачу?
  • Вопрос задан
  • 1592 просмотра
Пригласить эксперта
Ответы на вопрос 1
JRazor
@JRazor
Senior StarkOverFlow Programmer
К сожалению, пока что не было необходимости в решении подобной задачи. Но для запуска периодических задач как альтернативу Cron могу посоветовать celery.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы