Задать вопрос
@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:
Может кто то посажает другой инструмент для парсинга, который решит данную задачу?
  • Вопрос задан
  • 1614 просмотров
Подписаться 3 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
JRazor
@JRazor
Senior StarkOverFlow Programmer
К сожалению, пока что не было необходимости в решении подобной задачи. Но для запуска периодических задач как альтернативу Cron могу посоветовать celery.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽