Changedetction.io 是一项旨在检测特定网站是否发生更改的服务。
该服务通过定期抓取页面的输出来工作。然后,只要发现更改,该服务就会向你发送通知,让你轻松了解自上次更新以来到底发生了什么变化。
树莓派是 ChangeDetection.io 的绝佳选择,因为它是一款功耗相对较低的设备,可以经济实惠地全天候运行。
请注意,为了获得最佳体验,你需要使用 64 位版本的树莓派OS。然而,ChangeDetection.io 在 32 位上仍然可以正常工作。你只是无法检测到需要 JavaScript 才能显示的网站上的更改。
本教程在运行最新版本树莓派OS 64 位 Bullseye 的树莓派4B 上进行了测试。
安装前的准备
在安装此网站更改检测工具之前,我们需要安装一些初始软件。我们需要设置的主要内容是 Docker。
在树莓派上安装和运行 Changedetection.io 的最简单方法是通过 Docker 容器。
1.在继续之前,我们应该更新软件包列表以及任何过期的软件包。
你可以运行以下两个命令来执行这两个操作。
sudo apt update sudo apt upgrade
2.更新了软件包列表后,我们现在可以使用以下命令将 docker-compose 安装到 树莓派。
该软件包包含将 Changedetection.io docker 容器下载到树莓派所需的所有软件。它还允许我们在一次调用中安装一个附加包。
sudo apt install docker-compose
在树莓派上安装 ChangeDetection.io
一旦你在树莓派上安装了 Docker,我们就可以继续在其上安装 Changedetection.io。
由于此网站更改监视器可以作为 docker 镜像提供,因此我们需要做的就是编写一个快速的 Docker 配置文件,然后“运行”它。
1.让我们首先创建一个目录,在其中存储docker-compose
文件。
我们可以使用 mkdir 命令changedetection
在当前用户的主目录中创建一个名为“ ”的目录。
mkdir ~/changedetection
2.创建新目录后,我们必须使用 cd 命令更改为如下所示。
cd ~/changedetection
3.编写“docker-compose.yml
”文件。
该文件告诉 Docker 如何设置一个或多个容器。在我们的例子中,这将是“ changedetection.io
”和 Chromium Web 驱动。
vim docker-compose.yml
4.在此文件中,你需要输入以下行
适用于树莓派操作系统 64 位的 Docker-Compose.yml
version: '3.2'
services:
detection:
image: dgtlmoon/changedetection.io
container_name: detection
hostname: detection
volumes:
- ./datastore:/datastore
environment:
- PUID=1000
- PGID=1000
- PLAYWRIGHT_DRIVER_URL=ws://playwright-chrome:3000/?stealth=1&--disable-web-security=true
ports:
- 5000:5000
restart: unless-stopped
depends_on:
playwright-chrome:
condition: service_started
# Used for fetching pages via Playwright+Chrome where you need Javascript support.
playwright-chrome:
hostname: playwright-chrome
image: browserless/chrome
restart: unless-stopped
environment:
- SCREEN_WIDTH=1920
- SCREEN_HEIGHT=1024
- SCREEN_DEPTH=16
- ENABLE_DEBUGGER=false
- PREBOOT_CHROME=true
- CONNECTION_TIMEOUT=300000
- MAX_CONCURRENT_SESSIONS=10
- CHROME_REFRESH_TIME=600000
- DEFAULT_BLOCK_ADS=true
- DEFAULT_STEALTH=true
- DEFAULT_IGNORE_HTTPS_ERRORS=true
ports:
- 3100:3000
5.最后,我们可以通过在终端中运行以下命令在树莓派上启动 Changedetection.io。
通过运行此命令,Docker 将下载docker-compose.yml
文件中指定的所有映像并启动容器。
sudo docker-compose up -d
ChangeDetection.io Web 界面
现在我们已经将ChangeDetection.io软件安装到了 树莓派,我们终于可以访问它的 Web 界面了。
本教程的这一部分将向你展示如何访问 Web 界面并为你提供快速概述。
访问Web界面
1.你可以直接在树莓派上或从本地设备访问 ChangeDetection.io Web 界面。
要获取树莓派的本地 IP 地址,你可以使用 hostname 命令。
hostname -I
请注意,你将看到 Docker 创建的一堆不同的 IP 地址。通常,设备的 IP 地址将是第一个列出的。
例如,我们的树莓派的本地 IP 地址如下。
192.168.10.117
2.获得 IP 地址后,请在网络浏览器中访问以下地址。
在这里会注意到的主要事情是我们正在使用端口“ 5000
”,因为这是 ChangeDetection.io 默认使用的端口。
确保将“IP
”替换为你在上一步中获得的 IP 地址
http://IP:5000
使用树莓派的 Changedetection.io Web 界面
3.打开 ChangeDetection.io Web 界面后,你要做的第一件事就是添加一个网站来监视变化。
你可以直接从仪表板轻松执行此操作。
- 首先,需要输入你希望树莓派监视变化的URL ( 1. )。
- 接下来,可以选择为此特定的更改检测观察任务指定组名称 ( 2. )。
- 现在可以选择通过点击“
Watch
”按钮生成监控任务( 3.),或者,可以选择在监视开始之前通过单击“Edit > Watch”按钮来编辑高级选项 (4.)。
对于以下步骤,我们假设你想要进一步配置树莓派的网站变化检测器。

4.我们首先查看ChangeDetection.io 网络界面上的“General”设置页面。
你可以控制详细信息,例如要监控更改的 URL。你可能想要调整的关键事项之一是“ Time Between Check
”选项。
使用此选项,你可以填写 ChangeDetection.io 的检测间隔。

5.接下来是“ Request
”选项卡。此页面上的选项控制树莓派的网站更改检测器如何发出请求。
你可以使用此页面上的选项控制发出请求时使用的标头和正文。
你可能想要调整的关键选项之一是“获取方法”。
- 基本快速纯文本/HTTP 客户端:这是检查网站上是否发生更改的最快方法。它很简单,因为它只是无意识地抓取页面并比较纯文本。
当不必担心 JavaScript 时,此方法非常有用。 - WebDriver Chrome/JavaScript:当你正在检查的网站需要 JavaScript 来呈现时,你将需要使用此选项。
此外,ChangeDetection.io 还会在执行检查时截取网站的屏幕截图。

6.我们将看到的下一个选项卡是“ Filters & Triggers
”选项卡。
你可以使用此选项卡中的选项来过滤内容或添加其他触发器。例如,如果某个元素不断变化,你可以使用这些选项来忽略它。
此外,你还可以设置文本来触发更改通知。配置“ Trigger/wait for text
”选项后,仅当在页面上找到该文本或正则表达式时才会发送通知。

7.我们看到的最后一个选项卡可能是最重要的选项卡之一,即“ Notifications
”选项卡。
使用此选项卡,你可以设置树莓派在发现你的网站发生更改时应将通知发送到的位置。
你可以在 AppRise GitHub 上了解支持的 URL 及其格式。

8.在下面,你可以看到我们现在在树莓派上运行 Changedetection.io,并监视我们新添加的 URL 的变化。

结论
到本教程的此时,你现在应该已经在树莓派上运行 Changedetection.io 软件了。
该软件可以让你轻松地定期检查网站是否发生更改。
如果你在让此网站更改检测器在你的设备上运行时遇到任何问题,请在下面发表评论。