Использование cronjob для запуска scrappy, но не намеченный результат - PullRequest
0 голосов
/ 26 марта 2020

Я использую задание cron для составления расписания моего поискового сканера, работающего с интервалом в 12 часов.

Я создал паука, который собирает данные и сохраняет их в файле csv, используя FEED_FORMAT.

Это мое содержимое файла оболочки

#!bin/bash

cd /abc/abc/spiders
PATH=$PATH:/usr/local/bin/scrapy
export PATH
scrapy crawl abc_spider

Теперь, используя cronjob -e, я запланировал запуск cron каждую минуту.

* * * * * sh getdata.sh

Когда я проверьте мой вывод, используя grep CRON var/sys/syslog, он показывает, что мой cron работает каждую минуту

Хотя cron работает каждую минуту, данные не обновляются в файле CSV. Когда я запускаю его как sh getdata.sh в CMD, он работает нормально.

Пожалуйста, дайте мне знать ваше предложение о том, как решить эту проблему, а также о том, как планировать сканер с помощью CRON. Я пробовал много решений, но это проблема все еще сохраняется

Ответы [ 2 ]

0 голосов
/ 26 марта 2020

Запускать пауков с помощью командной строки в работе с кукурузой не рекомендуется. Вы можете запустить свой файл паука так же хорошо, как обычный python файл. вам нужно сделать несколько изменений в вашем коде паука. первый импорт CrawlerProcess

from scrapy.crawler import CrawlerProcess
# your entire code'''''''


process = CrawlerProcess()
process.crawl(YourSpiderClassName)
process.start()

Здесь process.crawl () принимает имя класса паука. Остальные вещи вы можете оставить как есть. Теперь вы можете запустить файл паука с расширением python. (SpiderFilename.py)

Надеюсь, это решит проблему с кукурузой.

0 голосов
/ 26 марта 2020

Измените команду на sudo scrapy crawl abc_spider и посмотрите, работает ли она.

...