Python Scrapy日志:以不同的格式设置StatCollector时间戳
当标准scrapy spider完成爬网时,它将使用StatCollectors模块记录爬网的摘要,该模块类似于以下内容(截断): 我希望以不同的格式设置Python Scrapy日志:以不同的格式设置StatCollector时间戳,python,scrapy,Python,Scrapy,当标准scrapy spider完成爬网时,它将使用StatCollectors模块记录爬网的摘要,该模块类似于以下内容(截断): 我希望以不同的格式设置start\u time和end\u time值,以便将日志文件作为监视管道的一部分进行处理。例如 datetime.datetime(2021,3,21,14,11,6,806324)=>2021-03-21 14:11:06.806324 我看无论如何都无法改变这一点。你知道我如何影响StatsCollector模块的格式吗?这不是很明显,
start\u time
和end\u time
值,以便将日志文件作为监视管道的一部分进行处理。例如
datetime.datetime(2021,3,21,14,11,6,806324)
=>2021-03-21 14:11:06.806324
我看无论如何都无法改变这一点。你知道我如何影响StatsCollector模块的格式吗?这不是很明显,但是你可以在你的爬行器上定义一个函数,在爬行器关闭时执行,你可以通过
爬行器访问统计数据。您可以使用它来记录开始/结束时间,如下所示
def关闭(自身原因):
self.logger.info(“开始时间:%s”,self.crawler.stats.get\u值(“开始时间”))
self.logger.info(“结束时间:%s”,self.crawler.stats.get\u值(“开始时间”))
如果希望在结束时关闭统计数据转储,则可以使用设置完成此操作
2021-03-21 15:11:16 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'downloader/exception_count': 4,
'elapsed_time_seconds': 91125.763498,
'finish_reason': 'finished',
'finish_time': datetime.datetime(2021, 3, 21, 14, 11, 6, 806324),
'item_scraped_count': 30395,
'log_count/ERROR': 4,
'log_count/INFO': 574,
'log_count/WARNING': 38,
'start_time': datetime.datetime(2021, 3, 20, 12, 52, 21, 42826)}