功能与方案
招标或公告网站监测:如何自动发现新增与悄悄修改?
做法是"定时抓取 → 内容快照 → 文本/附件哈希比对 → 命中通知"。重点不在抓取本身,而在快照存档和比对逻辑——只有把每一次抓取的版本完整留下来,才能识别出"悄悄改了几个字"这种小动作,并且事后可追溯。
整套系统大致分四层:
抓取层
- 公告列表页定时轮询(频率根据网站性质定,一般 30 分钟到 2 小时一次)
- 详情页只在列表新增或更新时才抓,避免无谓压力
- 附件(PDF/Word)原文下载并落到对象存储,不直接解析正文
- 反爬严的站点需要换 IP、模拟浏览器、控制并发,必要时用 Headless Chrome
快照层
每次抓到的页面都存一份完整版本,包括:
- 原始 HTML
- 抽取后的纯文本
- 附件二进制和它的 MD5/SHA256
- 抓取时间和源 URL
历史快照按"页面 + 时间"做版本号,所有版本永久保留,作为后续举证依据。
比对层
- 新增公告:列表里出现了之前没有的标题或 URL
- 内容修改:详情页文本和上一版的差异(用 diff 算法找出增删段落,不只是判断哈希)
- 附件替换:附件 MD5 变化但文件名相同,属于"悄悄换文件"的典型情况
- 撤回:之前能访问的页面现在 404,也作为一种状态变化
通知层
按"关注关键词 + 区域 + 行业"过滤后,命中规则的通过企业微信、邮件、短信通知到具体的人;不命中的存档备查。
工程上需要注意的几个点:抓取失败要重试和告警,不能让漏抓变成"系统没问题但人没看到";快照存储费用要算清楚,附件多的项目一年可能上 TB;如果监测的是登录态网站,账号管理和会话保持要单独设计。
我们做过类似的监测系统,落地周期通常 2-3 个月,先把核心几个目标网站跑稳,再扩展覆盖范围。比起一上来就追求"监测全网",先做精几个高价值站点更容易出效果。