有什么好的办法可以监控"网页结构"变化

2020-09-02 09:57:21 +08:00
 MrhuangSTR

RT,对于每月定时更新爬虫,需要抽取的数据对应的网页结构发生变化数据就会解析出错;例如要抽取的文本一开始 是 //div/span/em/text(), 下次网页结构调整就变成 //div/span/span/text();有什么好的办法可以监控网页结构发生变化或者更健壮的解析方式吗?

3615 次点击
所在节点    Python
26 条回复
Hades300
2020-09-03 09:25:37 +08:00
页面的变动是只有拿到 response 才能知道呀。其实宽泛一点,但凡页面发生变化都可以被认为是“结构改变”。
我的话,会在每次爬取时生成对 response.text 的哈希吧,然后存到 Redis (当然其他也行),key 要能映射到单次请求,考虑到 Post 不会改变 url 。。key 的生成我大概会选个 md5(method+url+data)。
有了这样的键值对后,把这部分比较写到中间件里,equal or unset ->set hash and save item,failed -> updated & drop item & Call Hook 邮件或者钉钉 或者自建监控表入个库。

这种方法只适用于静态页面
Hades300
2020-09-03 09:28:10 +08:00
其实爬虫写得好,只要捕获特定类型的 Exception 。中间件里写 Hook 就好。
RockShake
2020-09-03 11:06:41 +08:00
目前的业务主要就靠捕获异常来获取
MrhuangSTR
2020-09-03 11:35:27 +08:00
@Hades300 有比较好的中间件处理的版本观摩下吗
MrhuangSTR
2020-09-03 11:36:02 +08:00
@RockShake 捕获异常然后通知还是?
ChangHaoWei
2020-09-19 16:16:23 +08:00
你这爬虫的话 很多页面都是相同的啊,,那就搞 sample 监测啊。固定监控几个页面 那几个页面出了问题肯定相关的所有页面都不行。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/703409

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX