python scrapy爬虫数据统计功能详解
2022年5月30日小于 1 分钟约 245 字
数据以key/value方式存储,值大多是计数器。
统计数据收集器对每一个Spider保持一个状态表。当Spider启动时,该表自动打开,当Spider关闭时,自动关闭。
函数 | 解释 |
---|---|
stats.set_value("key","value") | 设置数据 |
stats.inc_value("key") | 增加数据 |
stats.max_value("key","value") | 对比原数据,设置一个最大的数 |
stats.min_value("key","value") | 对比原数据,设置一个最小的数 |
stats.get_value("key") | 获取数据 |
stats.get_stats() | 获取所有数据 |
# 例:搜集所有404的页面数量
class JobboleSpider(scrapy.Spider):
name = 'jobbole'
allowed_domains = ['blog.jobbole.com']
start_urls = ['http://blog.jobbole.com/all-posts/']
# 可以被解析到了状态码,如果不设置,200-300外的状态码的Response是进不来的。
handle_httpstatus_list = [404]
def __init__(self):
self.fail_urls = [] # 保存所有404页面
def parse(self, response):
if response.status == 404:
self.fail_urls.append(response.url) # 将404页面的URL添加到列表
self.crawler.stats.inc_value("failed_url") # 将数据收集器的"failed_url"字段加1。默认为0。