群晖搭建changedetection,监听网页内容,提醒降价、秒杀

2024-01-23 09:42:19 37点赞 405收藏 28评论

有的时候需要监听网页内容的变化,比如发了一个新帖,排行榜更新,或者库存更新,但是网站肯定是不会提供API接口给你免费调用的,怎么办?那就需要一个工具定时访问网页内容,一旦发现内容和上次不一致,那就证明网页内容有了更改。今天介绍的开源工具changedetection就可以很简单的帮我们实现这个功能

安装

打开群晖Container Manager,搜索changedetection,点击dgtlmoon/changedetection.io镜像,选择最新版本进行下载

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

在等待下载过程中,先创建好 changedetection 数据存放的目录

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

回到Container Manager套件,运行刚刚下载好的changedetection镜像。常规设置可以按需修改。高级设置下的端口映射不能直接设置为5000端口,因为群晖默认已经占用了5000端口,所以这里设置为12500

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

存储空间设置,需要把容器的/datastore文件夹映射为前面新建文件夹,这样才不会在容器升级的时候丢失数据

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

往下找到环境,如果LOGGER_LEVEL为空是无法运行容器的,这里直接点击减号去掉

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

其他设置不用更改,直接运行容器。现在用浏览器打开【群晖IP:12500】就能看到changedetection的主界面了

反代配置

如果需要在公网进行访问,建议配置反向代理并设置SSL证书,不要直接使用端口访问。下面演示两种反代配置方式

群晖反代

可以直接在控制面板->登录门户->高级菜单下设置反向代理服务器

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

Nginx Proxy Manager

如果搭建了Nginx Proxy Manager,则可以点击Add Proxy Host按钮新增一个反向代理配置。个人也建议使用这样的方式,这样就不用在路由器上打开很多端口,不安全也不方便

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

SSL选项下启用SSL证书

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

初步使用

打开主界面后,直接输入想要监听的网页,点击Watch按钮即可

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

添加完毕后,可以在下面的表格中看到已经添加的监听任务。最新检查网页的时间为13秒前,网页的最新一次改变为14秒前

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

点击最右侧的Diff按钮,就能看到变化的状态,红色的为前一个状态,绿色的为当前状态

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

点击Edit按钮,则可以编辑当前的任务。在Time Between Check中可以设置任务的运行间隔,下图就代表每3小时去请求刚刚的网页链接,并检查网页内容变化

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

可以在Notifications选项下配置通知方式,比如发送QQ邮箱,在输入框中输入mailto://{user}:{password}@qq.com即可,配置完成后,可以点击下面的Send test notification进行通知测试。更多的通知方式可以参考https://github.com/dgtlmoon/changedetection.io/wiki/Notification-configuration-notes官方文档

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

这里的配置都是针对当前任务的,如果要统一进行配置,可以点击右上角的SETTINGS,进行全局配置。如果对任务进行了分组,那么也可以点击前面的GROUPS,对不同的组进行配置

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

高级用法

看到这里,很多细心的小伙伴就发现问题了,changedetection这样检测整个页面的变化,是根本没有什么应用场景的。如果调用API接口直接返回数据还好,直接通知就完事了,如果要检测网页中的某个元素的变化要怎么办呢?

那就需要WebDriver了,WebDriver可以简单理解为浏览器驱动器,通过代码调用就可以模拟真实用户打开浏览器上网的操作,可以方便的获取网页的任何一个元素

如果要在changedetection上使用WebDriver,需要一个新的容器standalone-chrome-debugchangedetection是通过群晖Container Manager进行安装的,所以接下来同样演示在Container Manager中进行安装

在注册表中搜索standalone-chrome-debug进行下载

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

下载完毕后启动容器,把容器名称改为selenium,再点击下一步

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

端口设置中,容器端口映射为群晖的4444,去掉5900端口映射

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

下拉到环境变量配置,去掉NODE_APPLICATION_NAME环境变量。其他配置默认不变,直接运行容器

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

现在找到最开始启动的changedetection容器,把它停止

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

在容器的设置选项下进行编辑容器。找到环境,新增环境变量WEBDRIVER_URL,值为http://selenium:4444/wd/hub

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

下拉到最底部,新增一个链接,把selenium容器链接进来。然后点击右下角的保存,最后再启动容器

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

重新打开changedetection网页,现在就可以编辑网页任务,并在Request下开启WebDriver

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

现在来演示监听https://www.bjtime.org.cn/网站下的分钟的变化

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

changedetection主页面添加监听URL,设置监听间隔为1分钟

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

勾选WebDriver

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

用浏览器打开https://www.bjtime.org.cn/网站,点击键盘F12进入开发者模式(谷歌浏览器),点击工具栏左侧的箭头

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

再点击网页的内容,就可以定位到当前鼠标所指的页面元素了(工具栏左侧的箭头要蓝色才可以选择)

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

现在复制分钟所在的XPath路径,选中分钟后,点击右键进行复制

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

粘贴到Filters下的输入框中,最后点击保存

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

回到主页就可以看到监听任务了,点击Diff可以对历史状态进行对比

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

选择一个开始时间,再选择一个结束时间,点击右侧的Go,就可以看到开始时间到结束时间的内容变化,这里就是从39变为了40

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

如果设置了通知,状态改变的时候也会把历史状态和当前状态推送给你

群晖搭建changedetection,监听网页内容,提醒降价、秒杀

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
28评论

  • 精彩
  • 最新
  • 我这边研究了很久 然后发现一个问题 老哥 您看是否方便解答一下 ,就是他这个网页不是有一个通知嘛 ,然后他也有一个chrome的扩展程序,这个网页和扩展程序是可以连接的 。但是怎么样在网页通知那配置,他这个检测到更改才能够推送到这个小程序呢?因为这个小程序是在Windows上是可以直接弹窗通知的 。我翻了半天那个网站 但是因为我的知识有限 我还是没有找到研究办法。若能解惑 不胜感激 。

    校验提示文案

    提交
    这个我倒是没有研究过了 你可以自己多研究研究

    校验提示文案

    提交
    收起所有回复
  • dock注册表还能用?

    校验提示文案

    提交
    群晖的有梯子就能用,还自带更新以及提醒功能

    校验提示文案

    提交
    可以的,只是拉不到镜像版本信息

    校验提示文案

    提交
    还有9条回复
    收起所有回复
  • 感觉没啥实用性和便捷性呢 [邪恶]

    校验提示文案

    提交
    我原来就找过类似这样的工具,都是要收费的

    校验提示文案

    提交
    护网的时候那可是相当实用。

    校验提示文案

    提交
    收起所有回复
  • 群晖docker现在是不是要挂梯子?

    校验提示文案

    提交
    要选下注册表

    校验提示文案

    提交
    测试过了,只能挂梯子,有个闲置树莓派4b,搞了旁路由解决了

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • Got HTML content but no text found (With 200 reply code) 大佬好,显示红色的这行结果,请教有办法解决吗?

    校验提示文案

    提交
    这是哪里出现的?

    校验提示文案

    提交
    收起所有回复
  • 收藏备用

    校验提示文案

    提交
  • 不能用

    校验提示文案

    提交
  • 收藏

    校验提示文案

    提交
  • 如果中文显示的就更好了。

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
405
扫一下,分享更方便,购买更轻松