跳到主内容
全部作品

CASE STUDY / 2024

Snapshot —— 网页变更监控

给任意网页做定时快照,只在「有意义的变化」发生时通知你。用来盯竞品价格、文档更新、招聘页面。

PROJECT04OF 04
年份
2024
角色
独立开发
技术
Node.js · Playwright · Diff
最近更新
2024

起因是我盯着一个课程的开课页面刷了两周,直到某天下午它更新了而我没看到,名额没了。

难点不是抓取,是判定

抓网页很简单,难的是判断这次变化值不值得通知。直接做文本 diff 会被时间戳、随机 token、广告位轮播淹没,一天能给你发几十条。

我的方案:

  1. 用 CSS 选择器圈定关注区域,只对比这部分
  2. 归一化:去掉数字、日期、空白差异
  3. 语义相似度:对变化内容算一次相似度,低于阈值才判定为「实质变化」
  4. 同类变化在冷却期内合并

做完这几步,误报从每天 30+ 降到每周不到 1 次。

技术栈

Playwright 负责渲染(很多页面是 JS 动态生成的,纯 fetch 拿不到),Node.js 调度,结果存 SQLite,通知走 Telegram Bot。

复盘

这个项目让我明白:工具的价值不在功能多,在于它能不能让你安心地不再去想这件事。Notify 太多等于没 notify。