Loading... # python实现自动健康打卡 经过试验成功打卡两天,在此记录下 ## 数据获取和提交 首先打卡本质上就是在一个网址上提交了表单数据给校园服务器,所以在第一天尝试提交数据,查看提交数据格式和网址 https://wfw.scu.edu.cn/ncov/wap/default/save,保持登录状态,获取save下的表单数据和header ~~~python # 数据 save_url = 'https://wfw.scu.edu.cn/ncov/wap/default/save' headers = { # 你的请求头(包含referer、cookie、uagent等重要信息) } ~~~ 接下来对表单分析,发现有一项必须每天变化,就是打卡日期,格式是20220302这样的 引入time库,采用如下函数实现格式化日期 ~~~python new_date = time.strftime('%Y%m%d', time.localtime(time.time())) form_data = { # 你的表单信息,日期那一栏值替换为new_date } ~~~ 然后就可以使用requests库进行post data ~~~python response = requests.post(url=save_url, headers=headers, data=form_data).text print('打卡信息:' + response) # 查看打卡结果信息 ~~~ 可以看到正常打卡信息中存在提示“操作成功” ~~~ {e: 0, m: "操作成功", d: {}} ~~~ ## 邮箱提醒打卡成功 因为想要实现邮件提醒打卡成功,所以导入了python自带的邮件相关库 ~~~python import smtplib from email.mime.text import MIMEText ~~~ 设置相关信息 ~~~python MAIL_USER = '自己的邮箱' MAIL_PWD = '授权码' # 需要开启邮箱的STMP服务 MAIL_TO = '自己的邮箱' ~~~ <img src="https://service.mail.qq.com/images/faq/76FD1EA3-AC06-4938-9E2F-E6789AA04996.jpeg" alt="设置STMP" style="zoom:80%;" style=""> 函数实现发送邮件 参考:[使用Python实现平台自动打卡 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/127156300) ~~~python # 从网上找的代码并改进 def mail(mail_text): # 设置邮件内容 msg = MIMEText(mail_text) # 设置邮件主题、发送方和接收方 msg['Subject'] = "每日健康打卡通知" msg['From'] = MAIL_USER msg['To'] = MAIL_TO # 发送邮件 send = smtplib.SMTP_SSL("smtp.qq.com", 465) send.login(MAIL_USER, MAIL_PWD) send.send_message(msg) # 退出邮件 send.quit() if '操作成功' in response: mail_text = '今日已打卡,哦耶!' mail(mail_text) ~~~ ## 实现每日执行 最开始想要用windows的任务计划程序来实现每天执行脚本,费了老大劲设置,就跟这个作者弄得差不多,结果发现能执行,但是必须的开着机,而且很不稳定(确实,你关机了,笔记本还能运行程序就怪了) ![win10的任务计划程序](https://pic2.zhimg.com/80/v2-e74cbdb097228a51d10a5c86e4e1cd75_720w.jpg) 然后我就突然想到不是有服务器吗,放那吃灰呢,搁那顶上不就行了嘛,然后还真可以 要设置宝塔面板每日计划,参考:[(2条消息) 宝塔运行python文件(极简)_luxuncang的博客-CSDN博客_宝塔运行py文件](https://blog.csdn.net/luxuncang/article/details/114459256) 按着这个我就搞定了,设置每天7点打卡(我怕不是每天第一个打卡的,嘿嘿 最后修改:2022 年 03 月 02 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏