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

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

Похожие вопросы