用wigolo watch监控网页变化:定时检测加Webhook推送的完整实战
用wigolo watch监控网页变化定时检测加Webhook推送的完整实战【免费下载链接】wigoloThe go-to web for your AI coding agent — local-first search, fetch, crawl research over MCP. No API keys, no cloud, $0/query. Public beta.项目地址: https://gitcode.com/GitHub_Trending/wi/wigolowigolo 是一个本地优先的 AI 编码代理网页工具通过 MCP 提供网页搜索、抓取、爬取与研究能力——无需 API 密钥、不依赖云端、每次查询 0 成本。它的watch工具可以注册网页变化监控任务定时检测页面内容哈希一旦发现变化就在下次查询时内联报告或直接推送到你的 Webhook。本文带你从零跑通「注册任务 → 定时检测 → Webhook 推送」的完整实战。一、wigolo 是什么简单说wigolo 是给 AI 编码代理用的「网页工具箱」内置 10 个工具search、fetch、crawl、cache、extract、find-similar、research、agent、diff、watch。前几个负责找网页、读网页、理解网页而watch 负责盯着网页——这正是本文主角。所有能力都在本地运行重排序和向量嵌入跑在你自己的硬件上不产生按次计费长期监控几十个页面也不心疼。二、为什么用 wigolo watch 做网页变化监控相比自己写脚本 cron 轮询wigolo watch 有几个独特优势内容哈希对比不是粗暴比对它抓取页面、提取正文、计算内容哈希只有内容真的变了才报变化广告位、时间戳之类的噪音不会误报懒执行模型零额外守护进程没有后台 daemon检测在「你显式触发」或「wigolo 存活期间任务到期」时才发生资源开销极低变更时自动推 Webhook注册时加一个--notify参数即可检测到的变化会以 JSON POST 给你的端点内置 SSRF 防护被监控 URL 和 Webhook 目标都必须是公开 http(s) 端点内网地址一律拒绝。三、3步上手注册你的第一个网页监控任务第1步准备 wigolo需要 Node.js 20。无需安装直接用npx即可也可以npm install -g wigolo全局安装npx wigolo --version第2步注册 watch 监控任务以监控 Node.js 官方博客为例每 3600 秒1 小时检测一次npx wigolo watch add https://nodejs.org/en/blog --interval 3600 --json返回一个 job id内容哈希生成稳定且可复现{ job: { id: 74bec5cfdc2c… } }⚠️--interval最小为60 秒低于该值会被拒绝——这是对目标站点速率的礼貌约束。第3步触发一次检测记录基线npx wigolo watch run job-id --json首次检测会记录基线baseline返回{ url: https://nodejs.org/en/blog, changed: false, current_hash: 3e600c4fc579… }changed: false是预期行为——wigolo 需要先「记住」当前页面长什么样。下一次检测若哈希不同报告就会翻转为changed: true并附上previous_hash/current_hash。想看改了什么具体内容用姊妹工具diffnpx wigolo diff url会把页面与它的缓存副本做对比输出 git 风格的 unified patch、分节变更或摘要统计。四、定时检测是怎么工作的懒执行模型wigolo watch 采用的是**懒执行lazy execution**设计这是理解它的关键显式触发你调用watch run idCLI或action: checkMCP时立即检测到期顺带执行只要有一个长期存活的 wigolo 进程——wigolo serve守护进程或一个活跃的 MCP 会话——其他工具每次被调用后wigolo 都会顺手检查「有没有到期未查的 watch 任务」有就在后台跑绝不阻塞你的主请求注册即持久化任务存在本地数据库里同一台机器上任何长期存活的 wigolo 实例都会接手这些任务。调度细节到期判断、重入保护、失败兜底可以看源码 src/watch/scheduler.ts。一句话注册任务一次让wigolo serve常驻之后一切自动。五、Webhook 推送实战变化即时通知到你的系统1. 注册时带上 --notifynpx wigolo watch add https://nodejs.org/en/blog --interval 3600 \ --notify https://hooks.example.com/wigolo每个检测到的变化都会以 JSON POST 到这个端点2. 推送的 JSON 载荷长这样{ job_id: 74bec5cf…, url: https://nodejs.org/en/blog, changed: true, previous_hash: 3e600c…, current_hash: 9f41aa…, diff_summary: … }3. 几行 Node 代码就能接收// receiver.mjs — node receiver.mjs import http from node:http; http.createServer((req, res) { let body ; req.on(data, (c) (body c)); req.on(end, () { console.log(change:, body); res.end(ok); }); }).listen(8787);收到变化后你可以继续接飞书/钉钉/Slack 机器人、触发 CI、写数据库……完全自由组合。两个安全设计值得知道Webhook 目标若是重定向307/308会被视为投递失败而拒绝跟随防止恶意重定向把请求劫持到内网私有地址127.0.0.1、RFC 1918、云元数据地址在注册时就会被 SSRF 守卫拦下。实现见 src/watch/scheduler.ts 中的deliverWebhook与 src/watch/ssrf.ts。六、日常管理列出、暂停、删除任务# 列出所有任务 npx wigolo watch list --json # 删除任务 npx wigolo watch rm job-id --json通过 MCP 调用时还有pause/resume/delete三种动作可以精确管理单个任务批量注册则用urls数组参数单次上限 1000 个 URL。完整参数表见官方文档 docs/tools.md 与 docs/cli.mdAI 代理可用的技能说明在 skills/wigolo-watch/SKILL.md。七、进阶接入 n8n 等自动化平台wigolo 不止是 CLI。wigolo serve会同时暴露三个接口MCPstreamable HTTP、SSE 和 RESTPOST /v1/watch请求体就是 watch 工具的 JSON 参数。这意味着你可以在n8n里用 MCP Client 节点或 HTTP Request 节点调用全部 10 个工具用任何会 POST JSON 的客户端curl、Serverless 函数、Python 脚本操作 watch。现成的 n8n 配置参考examples/n8n-remote-mcp/README.mdREST 接口详情见 docs/rest-api.md。八、常见问题 FAQ问多久检测一次合适间隔最小 60 秒一般 changelog/博客用 1 小时状态页用 5 分钟300 秒较合适。问为什么我的任务没有自动检测懒执行模型决定了要么显式watch run要么有wigolo serve/ MCP 会话存活。一次性 CLI 进程可以注册和列任务但不会自己跑检测。问能只监控页面的某个区块吗注册时传selector参数指定 CSS 选择器即可当前版本会记录该字段diff 仍为整页属规划中的能力。问误报了怎么办wigolo 对比的是提取后的正文内容哈希不是原始 HTML多数噪音已被过滤。想精确控制可搭配 cache 的check_changes做批量变更检测。九、总结与参考场景推荐方式快速试用npx wigolo watch add/run三步走长期监控wigolo serve常驻 定时到期检测即时通知注册时加--notify webhook平台集成REST/v1/watch或 MCP 工具核心参考文件官方工具文档docs/tools.md、docs/cli.md完整可运行示例examples/watch-changelog-webhook/watch.sh含真实输出注释watch 工具实现src/tools/watch.ts调度与 Webhook 投递src/watch/scheduler.ts安全技能说明skills/wigolo-watch/SKILL.md想本地跑起来先安装 Node.js 20然后git clone https://gitcode.com/GitHub_Trending/wi/wigolo或直接npm install -g wigolo一条watch add命令就能开始你的第一个网页变化监控任务 【免费下载链接】wigoloThe go-to web for your AI coding agent — local-first search, fetch, crawl research over MCP. No API keys, no cloud, $0/query. Public beta.项目地址: https://gitcode.com/GitHub_Trending/wi/wigolo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考