网页变更监控:盯着对手的公告、库存和价格页

admin 开源软件 2026-10-24 4 0

这类工具的原理很简单:定时抓取页面、提取正文、和上次对比、有变化就通知。难点全在「怎么判断变了」和「怎么不被当成爬虫」。

一、部署

services:
  changedetection:
    image: dgtlmoon/changedetection.io:latest
    restart: unless-stopped
    ports: ["5000:5000"]
    volumes: ["./datastore:/datastore"]
    environment:
      - PLAYWRIGHT_DRIVER_URL=
      - BASE_URL=https://watch.你的域名

需要监控 JS 渲染的页面时,再加一个浏览器容器配套(页面内容由脚本生成,普通抓取只能拿到空壳)。

二、判断「变了」的三种策略

策略适用缺点
全文对比简单静态页页面上有时间戳/广告位,每次都报「变了」
CSS 选择器定位只关心某一块内容页面改版后选择器失效
忽略规则 + 去噪必须盯整页时要花时间调规则

实用顺序:能定位就定位。比如只监控商品页的「有货/无货」那一行,比监控整页准确得多。

如果只能整页监控,必须把这几类内容排除掉:访问计数器、当前时间、「推荐阅读」模块、随机广告位。否则每次抓取都会误报。

三、频率与礼貌

检查间隔决定了「多快知道」,也决定了「对方多烦」。经验值:

  • 补货/秒杀:5–15 分钟,但这类页面通常有反爬,成功率不高;
  • 公告/政策:每天 1–2 次足够;
  • 招聘页:每天一次;
  • 价格:每 6 小时,避免触发风控。

对同一站点,把多个监控项的检查时间错开,别在同一秒发一堆请求。

四、通知怎么配

接到自建推送是最顺的:webhook 一条 POST 就到手机,不依赖邮件。通知内容要带三样:哪个监控项、变了什么(差异片段)、原页面链接。

只发「有变化」而不带差异,等于让人重新打开页面看一遍,价值大打折扣。

五、几个现实约束

  1. 反爬会挡:Cloudflare、验证码、IP 限流都可能让监控时断时续。自建工具在这件事上没有优势,遇到强反爬只能降低频率或放弃;
  2. JS 渲染成本高:带浏览器容器后,内存占用会涨一个量级;
  3. 登录页监控不了:需要登录才有内容,得配 Cookie,而 Cookie 会过期;
  4. 不是自动化操作工具:它只负责「告诉你变了」,不负责下单、不负责抢。

六、适合监控什么

  • 政府/机构的公告与政策页(有实际价值,且页面稳定);
  • 招聘网站的目标公司页面(新岗位出现时间);
  • 竞品的定价页与套餐页;
  • 自己网站的页面(发现被篡改或挂马)。

最后一条常被忽略:给自己的首页做监控,一旦内容被替换(挂马、注入)能第一时间发现,比事后被搜索引擎标记要主动。

七、和 RSS 的区别

如果目标站点提供 RSS,用 RSS 更省事——那是对方主动提供的数据源。只有在「没有 RSS、但需要盯着」时才用这类工具。

RSS 阅读器的部署见 FreshRSS 与 Miniflux;推送渠道见 Ntfy。

相关阅读

评论

访问统计