GitHub Action构建实时监控网页排名

最近有需求监控一个的活动中某个参赛作品的排名情况,尴尬的是该活动自己没有一个排名页面,活动数据是分页且无序的。因此这里想到了用GitHub Action来构建一个实时监控网页排名的工具。

实现思路

  1. GitHub Action设置schedule cron定时任务,比如每10分钟执行一次。
  2. 执行脚本请求网页的API接口,获取数据信息,这里我想对熟悉JS,因此采用nodejs来实现。
  3. 根据数据信息,计算排名情况,处理成需要的数据。
  4. 根据数据,更新到HTML。
  5. SSH连接到服务器,上传HTML文件。
  6. 同时发送数据到TG,做到IM即时通知。

最终产物

  1. HTML页面,展示排名信息,每10分钟刷新一次
  2. TG机器人,发送排名信息

GitHub Action使用补充

  1. GitHub Action的cron表达式目前不支持设置时区
  2. GitHub Action针单个账号/组织,非public仓库,执行是有额度的,目前为2000分钟,如果超了将停止使用
    额度情况:https://github.com/settings/billing/summary
    https://static.1991421.cn/2025/2025-02-20-153358.jpeg
  3. GitHub Action中执行环境有MacOS,如果有需要可以配置选择使用Mac环境

写在最后

搭建上述一套连带开发也就个把小时时间,不得不说GitHub Action确实强大,借此可以玩出很多花样,上述的定时Job和爬虫也只是冰山一角,后续可以继续深入。