web-monitor

👁️ 零配置的本地网页监控专家

🥥9总安装量 2评分人数 2
100% 的用户推荐

基于 Python 的本地网页监控工具,支持价格追踪、库存监测和内容变更提醒,数据完全本地存储,无需 API 密钥即可实现自动化网站监控。

A

基本安全,请在特定环境下使用

  • 来自社区或个人来源,建议先隔离验证
  • ✅ 无危险代码执行:未使用 eval/exec 等动态执行函数,无 SQL/命令注入漏洞
  • ✅ 数据本地闭环:所有快照和配置存储于 ~/.web-monitor/,无网络上传或静默收集行为
  • ✅ 依赖纯净可控:仅使用 Python 标准库和系统 curl 工具,无第三方包管理器依赖
  • ⚠️ 子进程调用方式:使用 subprocess.run() 执行 curl,虽参数硬编码无注入风险,但建议迁移至原生 HTTP 库
  • ✅ 资源边界防护:单快照 10KB 上限、20 份历史限制,防止存储滥用和 DoS 风险

使用说明

核心用法

Web Monitor 是一款轻量级网页监控工具,通过命令行脚本实现对任意网页的自动化追踪。用户只需指定目标 URL 和监控条件,即可建立长期监控任务。核心操作围绕 scripts/monitor.py 展开,支持添加监控(add)、手动检查(check)、列表管理(list)、删除任务(remove)和历史查看(history)五大功能。

监控条件采用自然语言风格语法,支持价格阈值(price below 500)、文本包含(contains 'in stock'')等常见场景。通过 --selector 参数可精确定位页面元素,避免广告、时间戳等无关内容的干扰。配合 Cron 定时任务,可实现每 6 小时自动巡检并推送变更提醒。

显著优点

零配置门槛:无需注册账号、申请 API 密钥或配置云服务,依赖仅 Python3 和 curl 两个系统工具,5 分钟即可完成部署。

隐私优先设计:所有数据(网页快照、监控配置、历史记录)均存储在本地 ~/.web-monitor// 目录,用户可通过环境变量自定义路径,彻底杜绝数据出境风险。

资源管控严格:单条监控内容上限 10KB,历史快照最多保留 20 份,自动清理机制防止存储膨胀,适合长期运行在资源受限的设备上。

灵活的条件语法:价格解析自动识别多种货币符号(R、$ 等),文本匹配支持正反双向检查,满足电商比价、库存监控、内容追踪等多元需求。

潜在缺点与局限性

动态页面支持有限:对于重度依赖 JavaScript 渲染的站点(如 Amazon、Takealot),原生 curl 抓取可能获取不到完整内容,需借助外部工具(如 web_fetch)预处理,增加了使用复杂度。

认证场景缺失:不支持 Cookie、Session 或 HTTP Basic Auth,无法监控需要登录的私密页面(如会员专区、个人订单中心)。

通知机制简陋:仅依赖 Cron 任务的标准输出反馈,无邮件、短信、Webhook 等主动推送渠道,用户需自行配置消息转发。

解析鲁棒性一般:采用正则表达式提取价格信息,面对非标准格式或页面结构变更时可能失效,需人工介入调整 selector。

适合的目标群体

  • 价格敏感型消费者:追踪电商促销、机票酒店价格波动,在最佳时机下单
  • 小众商品猎人:监控限量商品、二手交易平台的上架状态,第一时间抢购
  • 内容运营人员:跟踪竞品官网更新、新闻发布、政策公告,保持信息同步
  • 个人开发者/运维:低成本监控个人站点、API 文档、开源项目 Release 页面
  • 隐私意识强烈的用户:拒绝 SaaS 监控服务的数据收集,坚持本地化处理

使用风险

网络依赖与反爬风险:高频监控(如间隔 < 30 分钟)可能触发目标网站的反爬机制,导致 IP 被封禁或返回验证码页面。建议合理设置 --interval,并遵守目标站点的 robots.txt 约定。

存储空间累积:虽然单条监控有 10KB 限制,但若建立大量监控任务(数百条),长期运行的快照累积仍可能占用可观磁盘空间,需定期执行 history 清理或手动删除 ~/.web-monitor/snapshots//

Cron 环境差异:不同操作系统的 Cron 环境变量配置存在差异,可能导致 python3 或脚本路径解析失败。建议在 Crontab 中使用绝对路径,并显式设置 WEB_MONITOR_DIR 环境变量。

条件语法误用:复杂的 CSS selector 或包含特殊字符的条件表达式若未正确转义,可能导致监控任务静默失败。建议首次配置后执行 check --verbose 验证抓取结果。

web-monitor 内容

文件夹图标references文件夹
文件夹图标scripts文件夹
手动下载zip · 7.5 kB
examples.mdtext/markdown
请选择文件