Changedetection 网页变化监控搭建教程
Changedetection.io 是一款强大的开源网页变化监控工具,可以定期检查网页内容并在发生变化时发送通知。它的应用场景非常广泛:监控商品价格变动、跟踪政策更新、检测网站内容篡改、监控竞品动态等。本文将介绍如何在搬瓦工 VPS 上部署 Changedetection。
一、应用场景
- 价格监控:跟踪电商平台商品价格变化,在降价时收到通知。
- 库存监控:监控缺货商品是否补货,如搬瓦工 VPS 方案的库存变化。
- 政策更新:跟踪政府网站或企业公告的更新。
- 内容安全:检测自己网站是否被篡改或注入恶意内容。
- 竞品分析:监控竞争对手网站的产品和定价变化。
- 招聘信息:监控特定公司的招聘页面变化。
二、环境准备
- 搬瓦工 VPS 一台,512MB 内存即可基础使用,使用浏览器渲染模式建议 1GB 以上(使用优惠码 NODESEEK2026 享受 6.77% 折扣)。
- 已安装 Docker 和 Docker Compose(参考 Docker 安装教程)。
三、Docker Compose 部署
mkdir -p /opt/changedetection
cat > /opt/changedetection/docker-compose.yml <<'EOF'
version: '3.8'
services:
changedetection:
image: ghcr.io/dgtlmoon/changedetection.io:latest
restart: always
ports:
- "5000:5000"
environment:
- PUID=1000
- PGID=1000
- BASE_URL=https://monitor.yourdomain.com
- PLAYWRIGHT_DRIVER_URL=ws://playwright-chrome:3000
volumes:
- /opt/changedetection/data:/datastore
depends_on:
- playwright-chrome
playwright-chrome:
image: dgtlmoon/sockpuppetbrowser:latest
restart: always
environment:
- SCREEN_WIDTH=1920
- SCREEN_HEIGHT=1080
- MAX_CONCURRENT_CHROME_PROCESSES=5
EOF
playwright-chrome 是可选的浏览器渲染服务,用于处理 JavaScript 动态渲染的页面。如果只监控静态页面,可以去掉这部分。
四、启动服务
cd /opt/changedetection
docker compose up -d
访问 http://VPS_IP:5000 进入管理界面。
五、添加监控任务
5.1 基础网页监控
- 点击「Add new watch」。
- 输入要监控的 URL。
- 设置检查频率(如每 30 分钟)。
- 保存后 Changedetection 会立即抓取第一次快照。
5.2 CSS 选择器过滤
如果只关注页面特定区域的变化,可以使用 CSS 选择器来限定监控范围:
- 编辑监控任务,在「CSS/XPath Filters」中输入选择器。
- 例如只监控价格元素:
.price-current。 - 这样页面其他部分的变化(如广告、评论)不会触发通知。
5.3 触发条件过滤
可以设置更精确的触发条件:
- 文本触发:只在出现特定关键词时通知,如「有货」「降价」。
- 文本排除:忽略包含特定词汇的变化。
- 变化阈值:设置最小变化量,忽略微小的文本改动。
六、配置通知
Changedetection 使用 Apprise 库支持 90+ 种通知渠道:
6.1 Telegram 通知
在设置中添加通知 URL:
tgram://bot_token/chat_id
6.2 邮件通知
mailto://user:password@smtp.gmail.com?to=your@email.com
6.3 Webhook 通知
json://your-webhook-url.com/endpoint
七、配置反向代理
cat > /etc/nginx/sites-available/changedetection <<'EOF'
server {
listen 80;
server_name monitor.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
EOF
ln -sf /etc/nginx/sites-available/changedetection /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d monitor.yourdomain.com
八、设置密码保护
在 Changedetection 设置页面中可以设置访问密码,防止未授权用户查看你的监控任务和数据。
九、数据备份
tar czf /opt/changedetection/backup_$(date +%Y%m%d).tar.gz /opt/changedetection/data
十、常见问题
JavaScript 页面无法正确抓取
确保 playwright-chrome 服务正常运行,并在监控任务设置中选择「使用浏览器引擎」抓取方式。
频繁误报
使用 CSS 选择器缩小监控范围,或设置变化阈值来忽略微小变动。
总结
Changedetection 是一个实用的网页变化监控工具,可以帮助你追踪互联网上感兴趣的内容变化。搭配 Gotify 或 Ntfy 推送服务使用效果更佳。选购搬瓦工 VPS 请访问 bwh81.net,使用优惠码 NODESEEK2026 享受 6.77% 折扣。