本程序的workflow代码灵感来源于@FurryPotato,Python打卡部分的程序实现来源于我的朋友DW。
由于本程序的实现和@FurryPotato的方法不同,因此设定过程也需要略加修改。
如果这个仓库帮到了你,也别给我一颗star,因为这会帮我打一次卡。
首先你需要拥有一个github,直接在左上角注册就行了。
点击本仓库的Fork
Fork的含义是将本仓库拷贝一份,放到你自己的github账号下,所以只有在第一次观看本教程的时候才需要fork。
然后我们可以看到,左上角这里的Di-Zhipeng已经变成了你自己账号的名字,下面标注着forked from Di-Zhipeng/ZJU-Clock-In.
此时你已经拥有了本仓库的一个拷贝。
打开DingHealthReport.py文件,找到deal_person函数,遵循注释完成cookies提取:
此函数是打卡功能的顶层函数,通过传入不同的cookies实现为多人打卡,
url_save = 'https://healthreport.zju.edu.cn/ncov/wap/default/save'
url_index = 'https://healthreport.zju.edu.cn/ncov/wap/default/index'
# 给出headers和cookies,令其可以免登录
# headers和cookies的确定方法为:
# 1. Chrome打开无痕页面,键入url_save网址,返回登录界面
# 2. 右键审查元素或者按F12,找到network栏
# 3. 输入账号密码并登录,然后找到“index”的“requests headers”一栏
# 4. 将cookie中的所有内容全部复制粘贴到116行附近的cookies1 = ‘’中,用以完成请求头。
打开https://sct.ftqq.com 注册账号获取sendkey,以获得微信消息推送。
将新得到的sendkey替换程序中116行附近原有的SendKey1的值。
在触发打卡前,请确保sendkey和cookies已经更新。
只有单人打卡时,请删除120-122行附近的内容:
Line 120 cookies2 = 'xxxxx'
Line 121 SendKey2 = 'yyyyy' # other one
Line 122 deal_person(cookies=cookies2, send_key=SendKey2)
触发打卡有两种方式,第一种是在自己的ZJU-Clock-In仓库里点击Star(已经Star的就取消Star,再重新点击)。
第二种是等待12小时,这个脚本是每隔12小时触发一次的。
点击仓库的Action:
每次触发打卡就会在右边多出一个记录,比如现在我已经执行过四次打卡脚本了,点击你需要查看的记录,再点击里面的ClockIn按钮,我们就可以看到本次打卡的情况了:
非计算机科学的学生只需要关注右侧ClockIn的文字提示内容就行了,点击Clock In:
就可以看到提示信息了,如果打卡失败,就按照提示去操作就好了。