Я запускаю scrapy spiders из другого скрипта, и мне нужно получить и сохранить переменную статистику из Crawler. Я изучил документы и другие вопросы StackOverflow, но мне не удалось решить эту проблему.
Это мой скрипт, из которого я запускаю сканирование:
import scrapy
from scrapy.crawler import CrawlerProcess
process = CrawlerProcess({})
process.crawl(spiders.MySpider)
process.start()
stats = CrawlerProcess.stats.getstats() # I need something like this
Я бы хотел, чтобы статистика содержала этот фрагмент данных (scrapy.statscollectors):
{'downloader/request_bytes': 44216,
'downloader/request_count': 36,
'downloader/request_method_count/GET': 36,
'downloader/response_bytes': 1061929,
'downloader/response_count': 36,
'downloader/response_status_count/200': 36,
'finish_reason': 'finished',
'finish_time': datetime.datetime(2018, 11, 9, 16, 31, 2, 382546),
'log_count/DEBUG': 37,
'log_count/ERROR': 35,
'log_count/INFO': 9,
'memusage/max': 62623744,
'memusage/startup': 62623744,
'request_depth_max': 1,
'response_received_count': 36,
'scheduler/dequeued': 36,
'scheduler/dequeued/memory': 36,
'scheduler/enqueued': 36,
'scheduler/enqueued/memory': 36,
'start_time': datetime.datetime(2018, 11, 9, 16, 30, 38, 140469)}
Я проверил CrawlerProcess, который возвращает отложенный и удаляет сканеры из поля «сканеры» после завершения процесса очистки.
Есть ли способ решить эту проблему?
Best,
Питер