配置Spidermon内置监控套件触发NotConfigured错误如何解决
问题原因
- 多余的源码复制操作引入了冲突风险:不需要手动复制官方源码到本地
monitors.py文件,Spidermon安装完成后内置的监控套件可直接引用,本地重复文件会导致Python导入模块时优先级异常,无法正确读取官方包内的监控逻辑。 - 配置参数未被正确识别:你虽然配置了
SPIDERMON_MIN_ITEMS,但模块导入异常导致配置未被正确传入到ItemCountMonitor监控项中,最终触发未配置的报错。
解决步骤
- 删除你本地新建的
monitors.py文件,以及同目录下对应的__pycache__缓存目录,彻底避免模块导入冲突。 - 调整
settings.py中Spidermon相关配置的顺序,参考如下示例统一放置:
# 开启Spidermon功能 SPIDERMON_ENABLED = True # 配置最小爬取Item阈值 SPIDERMON_MIN_ITEMS = 10 # 注册爬虫关闭阶段触发的监控套件 SPIDERMON_SPIDER_CLOSE_MONITORS = ( 'spidermon.contrib.scrapy.monitors.SpiderCloseMonitorSuite', )
- 重新运行Scrapy爬虫即可消除报错。
补充说明
如果你确实需要基于官方源码自定义监控逻辑,需要将SPIDERMON_SPIDER_CLOSE_MONITORS配置中的路径替换为你本地monitors.py对应的模块路径,比如你的Scrapy项目名为myproject,则修改为'myproject.monitors.SpiderCloseMonitorSuite'即可。
如果执行上述步骤后仍报错,可执行命令pip install -U spidermon重装官方稳定版Spidermon后再重试。
内容的提问来源于stack exchange,提问作者user3125823
相关产品推荐
相关产品推荐

