核心用法
Website Monitor 是一款零依赖(仅 Python 标准库 + requests)的轻量级网站监控脚本,提供三种核心检测模式:
1. 状态检查(check):快速验证网站可访问性,返回 HTTP 状态码与响应时间;
2. 变化监控(watch):基于文本哈希对比检测页面内容变更,自动生成差异对比(diff);
3. 内容匹配(match):支持正则表达式,检测特定关键词出现或消失。
状态数据以文件形式存储(--state-dir),通过 URL 哈希命名避免冲突,支持数百个站点并行管理。可配合 batch 模式批量监控,返回标准化退出码(0=正常/匹配,1=变更/未匹配,2=宕机),便于集成到 CI/CD 或 cron 定时任务。
显著优点
- 零架构成本:无需数据库、消息队列或外部 SaaS,单机即可运行;
- 标准化输出:退出码设计符合 Unix 管道哲学,易于脚本编排;
- 精准变更检测:基于内容哈希而非时间戳,避免无效告警;
- 轻量级依赖:单文件脚本,部署门槛低。
潜在缺点与局限性
- 无历史数据:仅保存最新状态快照,无法回溯长期趋势;
- 单点执行:缺乏分布式探针,无法检测区域性网络问题;
- 基础告警机制:依赖退出码和 stdout,需自行对接邮件/Slack/短信等通知渠道;
- 反爬风险:高频请求可能触发目标站点的 WAF 或限流策略;
- 动态内容干扰:JS 渲染页面、CSRF Token、广告轮播等会导致哈希频繁变动。
适合人群
- 个人开发者、小型团队寻求低成本的站点可用性监控;
- 需要监控静态页面、API 端点、价格页面的变更通知;
- 已将 OpenClaw 或类似 CLI 工具链集成到工作流的自动化用户。
常规风险
- 隐私泄露:状态目录可能包含敏感 URL,需确保
--state-dir权限(建议 0700); - 资源占用:批量监控高并发时可能消耗带宽与目标服务器资源;
- 误报累积:未配置白名单规则时,时间戳、随机广告等内容会导致频繁误报,降低告警可信度。