跳到主要内容
项目档案应用项目

changedetection.io 开源网站监控工具:自动检测网页变化并告警,支持 Docker 部署与 API 集成

dgtlmoon/changedetection.io:changedetection.io 是一个开源的网站变化检测与监控平台,可自动跟踪网页内容更新并通过多种渠道发送实时警报,适用于价格追踪、库存本页整理它解决什么问题、适用场景、安装方式和使用方法。

34,364PythonStar 于 2026年4月4日2026年9月19日 更新

AI 总结

changedetection.io 是一个开源的网站变化检测与监控平台,可自动跟踪网页内容更新并通过多种渠道发送实时警报,适用于价格追踪、库存监控及内容更新监测等场景。

中文项目介绍

changedetection.io 是一个专注于网站变化检测的开源平台,核心解决人工频繁检查网站效率低下的问题。它能够自动监控指定网页的内容变更,包括文本、价格、库存状态等,并在检测到变化时通过 Discord、Email、Slack、Telegram、Webhook 等多种渠道发送即时通知。\n\n项目适用于多种场景:电商价格追踪与缺货/补货提醒、新闻或政策内容更新监测、网站篡改或故障检测,以及需要登录或交互后才能访问的页面内容监控。其技术实现基于 Flask 框架,采用模块化架构,支持通过 requests、Selenium、Playwright、Puppeteer 等多种后端抓取页面内容,并利用 diff_match_patch 算法进行差异计算。\n\n特色功能包括视觉选择器(需 Playwright 支持)用于精准定位页面元素、浏览器步骤模拟实现登录等交互操作、以及专门的价格与库存数据追踪模块。平台提供 Web 界面和 REST API 两种使用方式,支持 Docker 部署,满足从个人到企业的不同需求。

详细信息与使用说明

1. 项目定位与用途

changedetection.io 是一个开源的网站变化检测与监控服务,定位为轻量级、易用的自动化监控工具。其核心用途是持续跟踪网页内容的变化,无需人工反复刷新,即可在内容更新时获得通知。它既提供免费的自我托管版本,也提供付费的 SaaS 服务(包含代理、Chrome 浏览器等高级功能)。主要服务于需要实时掌握网页动态的个人或团队,如电商运营、内容编辑、安全监控等。

2. 解决的问题

项目主要解决人工监控网站变化效率低下、易遗漏的问题。传统方式需要用户反复访问目标页面检查更新,耗时耗力。changedetection.io 通过自动化抓取和比对,实现 24/7 无人值守监控,并能识别细微的内容改动(如价格调整、库存状态变化、文本修订)。同时,它解决了复杂页面(需登录、交互)的监控难题,通过浏览器步骤模拟用户操作,扩展了可监控的网站范围。

3. 适用场景

典型场景包括:1)电商价格与库存监控,如商品降价、补货通知;2)内容更新监测,如新闻公告、政策文件、博客文章发布;3)安全与运维监控,如检测网站篡改、挂马或服务故障;4)竞品分析,跟踪竞争对手页面变化;5)监控需登录后访问的页面,如会员专区、个人订单状态。从仓库信息可见,其价格检测功能专门针对单品页面设计,可提取元数据并设置阈值告警。

4. 安装方式

从当前仓库信息可见,主要提供两种安装方式:1)基于 Python 环境的源码部署,需安装 requirements.txt 中列出的所有依赖包(包括 Flask、apprise、playwright 等),但具体安装命令(如 pip 命令)未在 README 中明确给出;2)Docker 镜像部署,仓库 Docker Pulls 统计记录表明提供了官方镜像,但 Dockerfile 或 docker-compose 示例未在当前提供的信息中明确列出。此外,文档构建需执行 npm install(见 docs/.gitignore 和 docs/README.md),但这属于开发文档的构建步骤,非主程序安装。

5. 使用方式

使用方式分为 Web 界面和 API 两种:1)Web 界面:用户通过浏览器登录后,添加监控 URL,使用视觉选择器选择关注区域,或配置浏览器步骤(如登录、搜索)以访问受保护内容,最后设置通知渠道和触发条件;2)REST API:基于 OpenAPI 3.1.0 规范(见 docs/api-spec.yaml)提供完整的 Watch、History、Snapshot 等资源管理接口,支持通过 API 密钥认证进行程序化操作。通知渠道通过 apprise 库集成,支持 URL 模板和条件触发。具体操作步骤在 Web 界面中引导,但详细命令行或 API 调用示例未在当前信息中完整给出。

6. 补充说明与实现特点

项目实现具有以下特点:模块化架构,内容抓取层抽象为 content_fetchers 模块,支持多种后端(requests/requests-file、selenium、playwright、puppeteer);差异计算模块 diff 使用 diff_match_patch 算法,并结合 inscriptis 将 HTML 转为纯文本进行比对;通知系统通过 apprise 插件化集成多通道;浏览器步骤模块支持交互式操作录制。数据模型包括 Watch、Tag、Notification 等核心实体。API 文档使用 Redoc 从 OpenAPI 规范自动生成交互式页面(见 docs/api_v1/index.html)。仓库中未明确给出性能指标、集群部署方案或详细的安全配置指南。

思维导图

changedetection.io
核心功能
网站变化检测
多通道通知
价格/库存追踪
视觉选择器
浏览器步骤模拟
技术架构
Web 框架
内容抓取器
差异计算
通知集成
API 层
部署与配置
Python 源码部署
Docker 镜像
API 密钥认证
主要模块目录
changedetectionio/
content_fetchers/
diff/
browser_steps/
price_data_follower/
api/
blueprint/

常见问题

changedetection.io 是免费的吗?

仓库信息表明项目提供开源的自我托管版本(免费),同时也提供付费的 SaaS 计划($8.99/月),包含代理、Chrome 浏览器等高级功能。具体定价和功能差异需参考官网。

如何安装和部署 changedetection.io?

从当前仓库信息可见,支持两种方式:1)基于 Python 环境,需安装 requirements.txt 中的依赖包,但具体命令未明确给出;2)使用 Docker 镜像部署,Docker Pulls 统计记录证实有官方镜像,但镜像名称和运行命令未在当前信息中明确列出。建议参考仓库的 Docker 相关文件或官方文档。

支持监控需要登录的网站吗?

支持。README 提到通过“浏览器步骤”功能可以模拟交互操作(如登录、点击按钮),从而访问受保护内容。但此功能需要启用 Playwright 内容抓取器,而 Playwright 在仓库中作为可选依赖存在,其完整支持可能依赖于订阅服务或特定配置。

如何配置通知渠道?

项目通过 apprise 库集成通知,支持 Discord、Email、Slack、Telegram、Webhook 等多种渠道。在 Web 界面中可添加和配置通知服务,也支持通过 API 管理。具体配置参数(如服务器地址、令牌)需在对应通知服务的设置中填写,但详细步骤未在当前信息中展开。

是否提供 API 接口用于自动化?

是的。仓库包含 OpenAPI 3.1.0 规范的 API 定义(docs/api-spec.yaml),并提供基于 Flask 的 RESTful 接口,支持对监控任务(Watch)、历史记录、快照等资源进行 CRUD 操作。API 使用密钥认证,交互式文档可通过 Redoc 访问(docs/api_v1/index.html)。