招标或公告网站监测:如何自动发现新增与悄悄修改?
结论:可靠的公告监测应采用“授权来源清单—定时获取—规范化快照—正文与附件版本差异—人工复核后通知”。每次结果必须保留来源 URL、源站时间、抓取时间和内容指纹;既要识别新增、修改、附件替换与撤回,也要区分页面模板、广告和访问失败造成的假变化。不能通过换 IP、绕验证码或规避访问限制来追求覆盖率。
只监控列表标题会漏掉详情页原地改字和同名附件替换;只比较整页哈希又会因访问量、推荐内容或页脚时间变化频繁误报。系统应把“网页是否变化”拆成业务对象是否变化:公告标题、编号、发布主体、发布时间、报名截止、预算、正文段落、附件名称与文件内容各自有稳定字段和版本。
| 变化类型 | 识别依据 | 易产生的误报 | 通知中应展示 |
|---|---|---|---|
| 新增公告 | 稳定公告 ID、规范 URL 或业务主键首次出现 | 列表翻页、置顶调整 | 标题、主体、发布时间和原文链接 |
| 正文修改 | 清洗后正文的段落级差异 | 导航、访问统计和动态推荐 | 增删改片段及新旧快照时间 |
| 附件替换 | 下载内容的 SHA-256 与上一版不同 | 临时下载页或签名 URL 变化 | 文件名、大小、摘要和两版链接 |
| 截止时间变更 | 结构化时间字段变化 | 时区、格式或解析错误 | 原时间、新时间和源文上下文 |
| 撤回或不可访问 | 连续多次得到明确终态并经复核 | 短时超时、限流和维护 | 最近成功版本、失败次数和复核状态 |
在继续拆分功能、数据与验收场景时,还可以对照 多省份多模板报表怎么自动生成与维护? 和 如何用OCR和文本识别做图文内容初审与分发?;这些内容补充了需要放在同一项决策中考虑的上下文。
快照必须可复核,但不等于无限期全量保存
每次成功获取可保存响应状态、规范 URL、抓取时间、页面声明时间、原始内容指纹、清洗文本和解析器版本。对具有保存许可的正文和附件,可在受控对象存储保留版本;没有再分发或长期保存权时,只保存必要元数据、差异和原文链接。存储期限要与业务举证需求、来源条款和数据类型一致,不能笼统“永久保留”。
网页规范化先去掉脚本、样式、导航、广告和随机参数,再对正文做段落级 diff。PDF、Word 等附件先比字节摘要,变化后再提取文本;扫描 PDF 需要 OCR,但 OCR 误差不能被当作源文件改变。原始文件、提取文本和 OCR 结果应分开标记。公告编号、采购人和截止时间等关键字段由规则或模型抽取后,还需用格式约束和抽样复核验证。
抓取失败不是“没有新公告”
优先使用官方 RSS、开放 API、邮件订阅、站点地图或明确允许的公开页面,并识别和遵守 robots.txt、网站条款、合理频率及缓存指令。RFC 9309 规定了 robots 排除协议,但它不是授权书,也不是访问控制的替代品;即使 robots 允许,也要核对合同、版权、个人信息和网站规则。登录、验证码或技术限制出现时,应联系来源方取得接口或书面许可,不应伪装浏览器和轮换 IP 绕过。
调度器对不同站点设置独立频率、并发和退避。支持 ETag 与 Last-Modified 时发送条件请求,减少带宽和源站压力。网络错误、解析失败、连续无数据和源站结构变化应形成健康告警,与“未发现业务变化”分开展示。撤回判断至少经过多次重试和人工确认,避免把临时 500、403 或 DNS 故障通知成公告撤销。
验收应准备一套历史回放集,包括新增、正文单字修改、日期变更、附件同名替换、模板变化、临时不可访问和真正撤回。分别计算业务变化召回率、误报率、从源站发布到通知的延迟、附件下载完整率、解析失败率和待人工复核量。关键词命中还要验证同义词、否定词、地区和行业边界;没有统一样本与观察窗口,就不能声称“全网不漏”。
滚水科技会先选择少量高价值、许可边界清楚的网站制作适配器和回放测试,给每个来源建立负责人、频率、解析版本和停止条件。平台只把有证据的变化推给用户,并附原文和差异;若来源明确禁止自动访问或无法取得授权,则改用官方订阅或人工监测,不以技术规避代替合规判断。
参考资料:
- RFC 9309:Robots Exclusion Protocol:用于核对自动客户端读取 robots.txt 的标准行为及其局限。
- RFC 9110:HTTP Semantics:用于核对条件请求、状态码和缓存相关的 HTTP 语义。
- 滚水科技企业级解决方案:用于了解滚水科技公开的业务系统和数据集成方向。