我是如何使用NodeJS自动完成我在校园打卡

前言

不知道学校要搞什么东西,现在改成我在校园健康打卡了,而且还要天天打卡,对于我这种懒人来说,手动天天打卡是不可能的,自己又有服务器,又会一点小技术,那这种事就交给NodeJS来做吧

正文

首先,我的服务器环境如下

服务器系统: CentOS 8.2

Docker版本: Docker version 20.10.10, build b485636

青龙面板版本: v2.10.0

在CentOS中安装docker

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
docker -v
//启动docker
systemctl start docker
//设置开机启动
chkconfig docker on

这时腾讯云官方提供的docker安装代码,每次输入一行即可安装docker,可能会安装很久

看到这个就证明docker安装好了,接下来就需要安装青龙面板了,当然也可以不用青龙面板,只是青龙比较方便

启动了docker之后,输入以下即可安装青龙面板

docker run -dit \
   -v $PWD/ql/config:/ql/config \
   -v $PWD/ql/log:/ql/log \
   -v $PWD/ql/db:/ql/db \
   -p 5700:5700 \
   --name qinglong \
   --hostname qinglong \
   --restart always \
   whyour/qinglong:latest

但是要注意的是,服务器防火墙规则要把相应端口打开,例如上面的是青龙默认命令,默认端口为5700,所以就要把5700端口打开

看到这个地方就证明青龙安装好了

安装好青龙之后,打开你的浏览器,访问域名:端口就能进入青龙面板的初始化了

由于我已经初始化过,所以这里就不放图了

进入到青龙面板后

这里如果没有通知方式或不知道是什么就点跳过就行了

设置完帐号密码即安装完成

进来后点击脚本管理,点击加号添加脚本

命名完毕后点击下方txt文件,全部填入,如图

来源:默认网盘

注意了,我放的脚本是默认我自己学校的,也就是广东交通职业技术学院的我在校园打卡,如果你是其他学校的,也想做到,下面我会详细解释一下脚本比较重点的地方

首先是帐号密码区

这里填入的是你的『我在校园』的账号密码,一般账号是手机号,密码是你自己设置的,但是很奇怪的是有时候会触发『我在校园』的bug导致重置了密码,这不是脚本问题,所有人都会,包括你在『我在校园』官方进行的操作也会有可能导致重置密码

例如说我的账号是12300000000,密码是123456,那么填写进去的就是12300000000----123456

获取的定位信息(不一定会有,每个学校不同)

例如我的学校的经纬度就是上方的经纬度,city以及以下的都会在脚本中自动获取,也就是这里

所以基本上是不用动的

提交打卡数据的核心部分

这里至关重要,看到body里的healthOptions了吗,如果你的学校或者你的『我在校园』排版和题目选项和我的不一样,那么你要修改的地方就是这里,下面会更详细说

这里的healthOptions是怎么来的?

getTodayData 这个函数中你会看到为了严格匹配题目和选项,我是如何处理这个逻辑的

如果和我的不一样,且不会修改,那你就需要学习如何去抓包修改了

最后,怎么知道打卡成没成功呢

为了解决这个问题,我内置了一个Bark通知函数

你可以通过安卓,iOS端下载Bark App,将箭头所指向的Key填入即可

这样就配置好这个脚本了,那怎么让他每天定时自动运行呢

来到青龙面板的定时任务这里,填入相关信息

名称可以随便写,命令task wzxy.js,如果你前面设置的脚本命名不是wzxy.js就填你命名的那个

而定时规则就要遵守Linux里的cron表达式了,上图的意思是每天的0点1分和12点1分也就是 00:01和12:01的时候自动运行wzxy.js这个脚本,点击确定即可

最后如果你从头到这里都是顺利走完,到点的时候,你就会看到这样的Bark提示

这就是每天自动完成『我在校园』健康打卡的全过程

版权声明:
作者:X1a0He
链接:https://www.x1a0he.com/nodejswzxy
来源:X1a0He's Blog
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>