ChangeDetection 安装和使用
序言
最近在等待某个网站上的通知,于是时不时打开网站看一眼。后来觉得太麻烦了,准备写个爬虫自动监测。又发现网上有很多现成的平台(于是懒得写代码了),但是它们的免费方案都只包括监控静态网页,想要处理 JSON 要付费,因此开始寻找开源替代方案。于是,就有了本文的主题 —— ChangeDetection。
ChangeDetection 有两个功能:监控 URL 内容变化;通知这些变化。这两个功能足以覆盖大部分日常场景。
Docker compose
ChangeDetection 最基本的配置如下,有一个端口映射、一个容器卷即可。
1 | version: "3" |
ChangeDetection 也提供可视化界面,让不懂编程的用户可以像使用浏览器那样选择要监控的内容。其中:
- Browser Steps 功能可以记录一系列操作;
- Visual Filter Selector 功能可以选择网页的某一部分;
这些实际上是底层的 Playwright 提供的功能,因此需要 WebDriver。官方提供的 docker compose 中有具体的配置,需要启动一个额外的 Chrome 容器给 Playwright 使用。我没有这个需求,就不配置了。
如果监控某一网站的频率很高,建议加一个代理,防止自己的 IP 被封、导致干不了正事了。
使用
ChangeDetection 的使用很简单,因为页面上一共也没几个按钮。
Filter
『Filters & Triggers』一栏是我们要重点关注的,在这里进行数据清洗。过滤器种类很多,我主要使用 CSS 和 JQ。具体的规则建议让 GPT 来写。
邮件通知
在 『Settings | Notifications』 中可以配置通知服务。我目前使用邮箱来通知,其原理就是自己给自己发一封邮件。规则如下:
1 | mailto://{user}:{password}@qq.com |
需要注意的是,不同邮箱的 password
不同。Gmail 的就是邮箱的登录密码,而 QQ 的要在『账号与安全 | 安全设置 』生成一个授权码(类似于 API TOKEN)。
邮件的内容使用的是 Jinja2 模板,修改方便。
配置完毕后,测试一下是否可用。