如何以编程方式识别网站结构的变化

How to identify a change in a websites’ structure programmatically

在 Python Scrapy 爬虫的实现中,我想为 monitoring/detecting 网站内潜在的布局更改添加一个强大的机制。

这些更改 不一定 影响现有的蜘蛛选择器 - 例如,网站添加了一个新的 HTML 元素来表示项目收到的访问者数量 -我现在可能对解析感兴趣的元素。 话虽如此,检测选择器问题 (Xpath/CSS) 在 removed/relocated 的情况下也是有益的。

请注意,这与选择器内容更改或网站刷新(if-modified-sincelast-modified)无关,而是网站结构/节点/布局的修改。

因此,如何实现逻辑来监控这种情况?

正如您在 this paper 上看到的那样,这实际上是一个研究主题,但您当然可以查看一些已实现的工具:

基本上(在以前的方法上)比较的基础是使用 html 布局的 Tree Edit Distance