想盯住官网改版、竞品定价页、开源项目 CHANGELOG,或博客是否被改动,却不想每天手动刷新?开源项目 changedetection.io(Apache-2.0)可以定时抓取网页,检测文本/HTML/JSON/PDF 变化,并通过邮件、Webhook、Apprise 等通道提醒你。
协议为 Apache-2.0,个人与团队自用清晰。镜像单容器即可跑,适合笔记本、NAS 或内网小主机常开,当作「网页哨兵」。
技术栈:Python · Docker 一键部署 · 可选 Playwright/WebDriver 抓取(本教程用默认 HTTP 客户端即可)
你将得到什么
- 浏览器里的监控列表:加 URL、打标签、手动/定时重新检查
- 单条监控的编辑页:检查间隔、过滤器、通知、历史快照
- 全局设置:密码保护、抓取参数、Apprise 通知、备份与 API
- 只监听
127.0.0.1,不直接暴露公网
环境要求
- 已安装 Docker 的 Linux / macOS / Windows
- 约 200MB~内存视监控数量而定(演示环境很轻)
- 出网访问被监控站点(或内网地址)
官方仓库:github.com/dgtlmoon/changedetection.io。本文实机镜像为 dgtlmoon/changedetection.io:latest(界面版本约 v0.60.x)。
第一步:Docker 启动
只绑定本机端口,并把数据目录挂进容器(监控项、快照、设置都落在这里):
mkdir -p ./changedetection-data
docker run -d \
--name changedetection \
-p 127.0.0.1:5050:5000 \
-v "$PWD/changedetection-data:/datastore" \
--restart unless-stopped \
dgtlmoon/changedetection.io:latest
浏览器打开 http://127.0.0.1:5050。首次进入即可看到主界面:顶部粘贴 URL 点「监控项」,下方是标签过滤与监控列表。演示环境会自带若干示例监控,可直接观察「检查/变更」时间戳。

第二步:编辑一条监控
在列表点「编辑」,进入该 URL 的配置页。可改标题与分组标签、选择处理器(网页文本/HTML/JSON/PDF,或股价类),以及是否沿用全局检查间隔。需要只盯页面某一块时,再到「过滤器与触发器」里用 CSS/XPath 收窄检测范围。

第三步:全局设置与密码
右上角「Settings」进入全局设置。「通用」里可调默认检查间隔(演示默认约 3 小时)、历史保留条数,并设置访问密码——自托管面板务必加密码,避免内网误开放。

第四步:变更通知(Apprise)
检测到变化后,可通过 Apprise 发到邮件、Telegram、Discord、Webhook 等。侧栏「通知」或路径 /settings/notifications/apprise 可配置全局通知 URL;单条监控也可覆盖自己的通知目标。具体 URL 写法见 Apprise 文档。

安全与运维建议
- 不要把 5050 直接映射到 0.0.0.0。教程用的是
127.0.0.1:5050;远程访问走 SSH 隧道:ssh -L 5050:127.0.0.1:5050 user@你的机器。 - 务必设置面板密码(设置 → 通用),生产环境再加反向代理与 HTTPS。
- 若监控目标在私网/本机回环,需按官方说明评估
ALLOW_IANA_RESTRICTED_ADDRESSES等环境变量,并清楚 SSRF 风险,仅在可信环境开启。 - 需要执行页面 JS 时,再按文档接入 Playwright/WebDriver 抓取器;纯静态页用默认 HTTP 客户端即可。
- 演示用完可删:
docker rm -f changedetection && rm -rf ./changedetection-data。 - 升级:
docker pull dgtlmoon/changedetection.io:latest后重建同名容器(保留/datastore卷)。
小结
Changedetection.io 把「定时看网页有没有变」收成自托管面板:Apache-2.0、Docker 一行命令、支持过滤与多通道通知。盯 CHANGELOG、价格页、公告栏或自家站点文案,都很合适。













暂无评论内容