哨兵(web-monitor)- 网页内容监控
使用 scripts/web_monitor.py 完成所有操作,状态默认保存在 ~/.web_monitor/state.json。
工作流程
1. 添加监控目标
python3 scripts/web_monitor.py --add <URL> [--add <URL2> ...] [--label "自定义名称"]
2. 检查变更
# 检查所有目标
python3 scripts/web_monitor.py --check
# 检查指定目标
python3 scripts/web_monitor.py --check --urls <URL>
# 过滤不关心的变更(支持正则,可多次指定)
python3 scripts/web_monitor.py --check --filter "广告" --filter "\d{4}-\d{2}-\d{2} \d{2}:\d{2}"
3. 管理目标
python3 scripts/web_monitor.py --list # 列出所有监控目标
python3 scripts/web_monitor.py --remove <URL> # 移除目标
python3 scripts/web_monitor.py --reset --urls <URL> # 清除快照重新采集
参数速查
| 参数 | 说明 |
|---|---|
--add URL |
添加监控目标(可多次使用) |
--check |
检查变更 |
--urls URL |
指定操作的 URL(与 --check/--reset 配合) |
--filter PATTERN |
过滤变更行(正则,可多次指定) |
--label TEXT |
为目标设置自定义标签 |
--context N |
差异上下文行数(默认 3) |
--no-save |
检查后不更新快照(只读对比) |
--state-dir PATH |
自定义状态目录(默认 ~/.web_monitor) |
--reset |
清除快照,下次检查重新采集 |
--remove URL |
移除监控目标 |
--list |
列出所有监控目标 |
行为说明
- 首次检查:仅采集快照,不报告变更
- 后续检查:与上次快照对比,输出 unified diff
- 过滤逻辑:
--filter按行匹配,过滤掉包含该模式的增删行;上下文行不受影响 - 内容提取:自动去除
<script>/<style>标签,提取纯文本内容 - SSL:默认跳过 SSL 证书验证(适配内网/自签名证书环境)
与用户对话时的建议问题
用户可能需要你追问的信息:
- 要监控哪些 URL?
- 是否有需要过滤的内容(如时间戳、广告、动态数字等)?
- 是否需要定时自动检查(结合 cron 工具实现)?