gpt4 book ai didi

python - Scrapy:如何将爬行统计信息保存到json文件?

转载 作者:行者123 更新时间:2023-12-04 04:12:56 24 4
gpt4 key购买 nike

在 scrapy 2.0.1 中,我正在将新数据写入 json 文件。在过程结束时,我想附加 scrapy 统计信息。现在我知道有一个 scrapy stats 集合可用:

https://docs.scrapy.org/en/latest/topics/stats.html

所以正确的代码行可能是这一行:stats.get_stats()

连同:

class ExtensionThatAccessStats(object):

def __init__(self, stats):
self.stats = stats

@classmethod
def from_crawler(cls, crawler):
return cls(crawler.stats)

我目前的管道是这样的:

class test_pipeline(object):

file = None

def open_spider(self, spider):
self.file = open('data/test.json', 'wb')
self.exporter = JsonItemExporter(self.file)
self.exporter.start_exporting()

def close_spider(self, spider):
self.exporter.finish_exporting()
self.file.close()

我是 Python 新手。如何添加此功能以将统计信息附加到 json 文件?

最佳答案

您可以使用在运行结束时运行的统计信息收集器。

将其添加到 settings.py 中:

STATS_CLASS = 'mycrawler.MyStatsCollector.MyStatsCollector'

这是将 JSON 输出到文件的 MyStatsCollector.py 的基本实现:

from scrapy.statscollectors import StatsCollector
from scrapy.utils.serialize import ScrapyJSONEncoder

class MyStatsCollector(StatsCollector):
def _persist_stats(self, stats, spider):
encoder = ScrapyJSONEncoder()
with open("stats.json", "w") as file:
data = encoder.encode(stats)
file.write(data)

关于python - Scrapy:如何将爬行统计信息保存到json文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61402939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com