首页 > 解决方案 > 如何监控 Scrapy 蜘蛛的健康状况

问题描述

我有一个 Scrapy 项目,它解析大约 30 多个列表站点,我正在尝试找出一种方法,如果更新任何站点的底层 Web 结构,如何维护和监控刮板的一致性。

我已经有两种方法可以尝试实现这一目标:

  1. 我有一套规则,DropItem如果一些核心字段不存在(产品标题、价格和其他几个总是存在的)。这在一定程度上有所帮助,但它假设如果那些 3/4 字段都可以,那么结构的其余部分也可以。对于上下文,我不能使所有其他字段都需要,因为它们本质上是可选的(即coloursize等)

  2. 我通过在一组本地保存的 HTML 正文上为每个蜘蛛运行刮板来工作。这有利于整体代码质量,但不能解决确定蜘蛛可能因 DOM 更改而损坏的问题。

我想按照以下方式做一些事情;

TL;博士

如何监控 HTML 页面结构的变化,以避免运行导致数据损坏的 Scrapy 作业?

还有哪些其他选项可以检测抓取作业可能已损坏、启发式或其他方式?DropItem已经尽可能使用。

标签: pythonweb-scrapingscrapyweb-crawlermonitoring

解决方案


检查蜘蛛兽

Spidermon 是 Scrapy 蜘蛛的扩展。该软件包为数据验证、统计监控和通知消息提供了有用的工具。这样您就可以将监控任务留给 Spidermon,然后只检查报告/通知。


推荐阅读