用Python写一个健康打卡脚本
因为南京疫情的复发,学校要求开学之前一直每日打卡,过程就是每天反复填写一个类似调查问卷的网页提交,每次的内容几乎一模一样,天天重复一样的工作属实很蠢,准备用python写一个脚本,自动登录提交,再放到GitHub Action上每日自动执行,这样以来就再也不用管了。
登陆部分
提交申请之前要先登陆学校的账号,于是先打卡登陆界面,用Chrome自带的调试工具抓取一下登陆信息。
在Form Data里找到提交的参数
username是学号,password是密码,主要是这两个,下面的四个直接照搬即可。
username: xxxxx
password: xxxxx
execution: 5d0b6fd7…. (此处省略,太长了)
_eventId: submit
loginType: 1
submit: 登 录
设置一下参数:
1 | "username": userid, |
找到要post的url,用requests.post,并且把上面的postData作为数据参数提交。
1 | post_url = 'https://ids.njucm.edu.cn/login?service=https://pdc.njucm.edu.cn/pdc/formDesignApi/S/iKKUJvEV' |
提交部分
提交之后怎么确认是不是登陆成功进到表格页面呢,在表格页面下面有个提交按钮,在返回的post.txt查找一下。
if post.text.find('提交'):
print("登陆确认")
事先提交一次表单,和刚才抓取登陆表单一样,抓取一下提交表单。
将参数设置一下
1 | params = { |
将提交表单里每个人不同的地方替换下
1 | params['XM_699791'] = name |
设置一下post的url
url = 'https://pdc.njucm.edu.cn/pdc/formDesignApi/dataFormSave?wid=A25FF315167F5528E0533200140AA058&userId=' + userid
带上参数,post过去,如果返回200通常就算成功了。
res = requests.post(url, data=params)
if res.status_code == 200:
print('提交成功')
完整代码在https://github.com/CitingNutria/NJUCM-daily-health-checker
Comments