网站首页 > 精选教程 正文
有的时候需要监听网页内容的变化,比如发了一个新帖,排行榜更新,或者库存更新,但是网站肯定是不会提供API接口给你免费调用的,怎么办?那就需要一个工具定时访问网页内容,一旦发现内容和上次不一致,那就证明网页内容有了更改。今天介绍的开源工具changedetection就可以很简单的帮我们实现这个功能
安装
打开群晖Container Manager,搜索changedetection,点击dgtlmoon/changedetection.io镜像,选择最新版本进行下载
在等待下载过程中,先创建好 changedetection 数据存放的目录
回到Container Manager套件,运行刚刚下载好的changedetection镜像。常规设置可以按需修改。高级设置下的端口映射不能直接设置为5000端口,因为群晖默认已经占用了5000端口,所以这里设置为12500
存储空间设置,需要把容器的/datastore文件夹映射为前面新建文件夹,这样才不会在容器升级的时候丢失数据
往下找到环境,如果LOGGER_LEVEL为空是无法运行容器的,这里直接点击减号去掉
其他设置不用更改,直接运行容器。现在用浏览器打开【群晖IP:12500】就能看到changedetection的主界面了
反代配置
如果需要在公网进行访问,建议配置反向代理并设置SSL证书,不要直接使用端口访问。下面演示两种反代配置方式
群晖反代
可以直接在控制面板->登录门户->高级菜单下设置反向代理服务器
Nginx Proxy Manager
如果搭建了Nginx Proxy Manager,则可以点击Add Proxy Host按钮新增一个反向代理配置。个人也建议使用这样的方式,这样就不用在路由器上打开很多端口,不安全也不方便
在SSL选项下启用SSL证书
初步使用
打开主界面后,直接输入想要监听的网页,点击Watch按钮即可
添加完毕后,可以在下面的表格中看到已经添加的监听任务。最新检查网页的时间为13秒前,网页的最新一次改变为14秒前
点击最右侧的Diff按钮,就能看到变化的状态,红色的为前一个状态,绿色的为当前状态
点击Edit按钮,则可以编辑当前的任务。在Time Between Check中可以设置任务的运行间隔,下图就代表每3小时去请求刚刚的网页链接,并检查网页内容变化
可以在Notifications选项下配置通知方式,比如发送QQ邮箱,在输入框中输入mailto://{user}:{password}@qq.com即可,配置完成后,可以点击下面的Send test notification进行通知测试。更多的通知方式可以参考https://github.com/dgtlmoon/changedetection.io/wiki/Notification-configuration-notes官方文档
这里的配置都是针对当前任务的,如果要统一进行配置,可以点击右上角的SETTINGS,进行全局配置。如果对任务进行了分组,那么也可以点击前面的GROUPS,对不同的组进行配置
高级用法
看到这里,很多细心的小伙伴就发现问题了,changedetection这样检测整个页面的变化,是根本没有什么应用场景的。如果调用API接口直接返回数据还好,直接通知就完事了,如果要检测网页中的某个元素的变化要怎么办呢?
那就需要WebDriver了,WebDriver可以简单理解为浏览器驱动器,通过代码调用就可以模拟真实用户打开浏览器上网的操作,可以方便的获取网页的任何一个元素
如果要在changedetection上使用WebDriver,需要一个新的容器standalone-chrome-debug。changedetection是通过群晖Container Manager进行安装的,所以接下来同样演示在Container Manager中进行安装
在注册表中搜索standalone-chrome-debug进行下载
下载完毕后启动容器,把容器名称改为selenium,再点击下一步
在端口设置中,容器端口映射为群晖的4444,去掉5900端口映射
下拉到环境变量配置,去掉NODE_APPLICATION_NAME环境变量。其他配置默认不变,直接运行容器
现在找到最开始启动的changedetection容器,把它停止
在容器的设置选项下进行编辑容器。找到环境,新增环境变量WEBDRIVER_URL,值为http://selenium:4444/wd/hub
下拉到最底部,新增一个链接,把selenium容器链接进来。然后点击右下角的保存,最后再启动容器
重新打开changedetection网页,现在就可以编辑网页任务,并在Request下开启WebDriver了
现在来演示监听https://www.bjtime.org.cn/网站下的分钟的变化
在changedetection主页面添加监听URL,设置监听间隔为1分钟
勾选WebDriver
用浏览器打开https://www.bjtime.org.cn/网站,点击键盘的F12进入开发者模式(谷歌浏览器),点击工具栏左侧的箭头
再点击网页的内容,就可以定位到当前鼠标所指的页面元素了(工具栏左侧的箭头要蓝色才可以选择)
现在复制分钟所在的XPath路径,选中分钟后,点击右键进行复制
粘贴到Filters下的输入框中,最后点击保存
回到主页就可以看到监听任务了,点击Diff可以对历史状态进行对比
选择一个开始时间,再选择一个结束时间,点击右侧的Go,就可以看到开始时间到结束时间的内容变化,这里就是从39变为了40
如果设置了通知,状态改变的时候也会把历史状态和当前状态推送给你
猜你喜欢
- 2024-10-14 Alist - 阿里云盘目录文件列表程序(Docker 部署教程 )
- 2024-10-14 GO语言实现Github webhook接收处理服务
- 2024-10-14 华丽的个人主页引导页,无限多模式个性化——NOISE主页
- 2024-10-14 主打数据安全!华硕三款NAS新机即将开售!附ADM4.1系统更新解析
- 2024-10-14 保姆级,利用cf实现无端口部署动态博客——halo
- 2024-10-14 立即提高生产力!图床、计划、代办、番茄钟All In One
- 2024-10-14 不止是Docker!瀑布流照片墙、文件批量处理,熊猫带你花式玩NAS
- 2024-10-14 给你的NAS无限可能,安装小晓雅全家桶影音库
- 2024-10-14 开源&Docker:何必nextcloud,新晋神级私人云盘,在线office编辑
- 2024-10-14 看,这里有300款斯拉夫鸡尾酒手册,利用NAS部署一套酒吧管理系统
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)