网页变更监控系统(ChangeWatch)产品系统Vibe Coding

我要开发同款
Gstar2026年10月26日
6阅读

技术信息

语言技术
Python
系统类型
Web、Linux
行业分类
企业服务、云计算

作品详情

行业场景

企业在做定价和竞争分析时,通常要靠人工每天打开几十个网页看有没有变化,既费时又容易漏。尤其 SaaS 定价页、商品接口这类页面,改一个数字就是一次商业信号,但人盯不过来,而且页面被反爬拦截时人工也看不出是"没变"还是"打不开"。所以要做一个能自动盯、能准确判断、拦截时明确告警的监控系统。

功能介绍

1. 目标管理:每个目标 = 一个 URL + 一组字段 + 一个检查间隔,支持 CSS 选择器、XPath、JSONPath、正则四种提取方式。
2. 三级抓取:L1 HTTP 直连、L2 浏览器渲染、L3 反爬对抗池,按目标难度自动升级。
3. 字段级差异:只比对用户指定的字段,输出"从什么变成什么",不做整页哈希,避免无关内容造成误报。
4. BLOCKED 一等状态:403、429、验证码、空响应、JS 墙都有独立状态和告警,绝不伪装成"无变化"。
5. 快照归档:每次抓取保留原始 HTML 哈希和结构化字段,可回滚对比。
6. 告警通道:邮件、Slack、通用 Webhook,支持测试发送。
7. 多租户:租户级数据隔离 + API Key 鉴权,跨租户访问返回 404。

项目实现

我独立完成全部环节:需求设计、数据库建模、抓取引擎、差异算法、前端面板、部署运维。

技术栈:Python 3.12 + FastAPI + SQLAlchemy + SQLite(WAL) + APScheduler + Playwright + httpx。

难点与亮点:
一是"静默失败"——抓取被拦却当成没变化,产品就失去价值。所以把 BLOCKED 设计成一等状态,任何异常都有独立告警。
二是误报控制——整页哈希会因时间戳、随机 ID、广告位变化而误报,改成字段级结构化比对后误报基本消失。
三是资源控制——简单页面走 HTTP 直连,只有难啃的才启动浏览器,2 核 2G 机器就能稳定跑。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论