Я использую Django с сельдереем и использую Scrapy в качестве веб-скребка. Мой веб-скребок по какой-то причине не работает. После некоторой отладки я обнаружил, что в коде моего сканера произошла ошибка. Я исправил это, но это было, когда я понял, что scrapy не выводит журналы ошибок, когда происходит ошибка.
Я пытался заставить его выводить логи, но не могу понять, в чем проблема.
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
# Call crawler
def crawl(url):
process = CrawlerProcess(project_settings)
# Specify arguments for crawler
process.crawl(crawler_or_spidercls='website')
print('starting....crawl')
process.start() # the script will block here until the crawling is finished
print('done....crawl')
Я специально установил свой код для выдачи ошибки. Ниже показан вывод сельдерея: он успешно завершен без вывода ошибки на консоль.
celery_worker_1 | [2019-06-21 20:22:00,655: WARNING/ForkPoolWorker-7] starting....crawl
celery_worker_1 | [2019-06-21 20:22:00,666: WARNING/ForkPoolWorker-7] done....crawl
celery_worker_1 | [2019-06-21 20:22:00,672: INFO/ForkPoolWorker-7] Task crawler.tasks.crawl_website[3671f518-8a41-44bc-8deb-4c8a1c5e9a6d] succeeded in 0.16195997500017256s: None
celery_worker_1 | [2019-06-21 20:22:00,672: WARNING/ForkPoolWorker-7] 2019-06-21 20:22:00 [celery.app.trace] INFO: Task crawler.tasks.crawl_website[3671f518-8a41-44bc-8deb-4c8a1c5e9a6d] succeeded in 0.16195997500017256s: None
Однако, если бы я сам запустил только функцию сканирования, я смог бы увидеть ошибку.