学校的健康打卡制度是国家疫情防控的重要一环,违反疫情防控有关规定需承担刑事责任.此项目仅供学习交流,不可用于违法违规用途.使用本项目造成的任何后果使用者自行承担
本项目通过腾讯云函数部署,可以实现每日健康日报的自动打卡,防止您因繁忙的工作或学习,亦或是睡懒觉而忘记了健康日报的填写。使用步骤如下
- 下载Release中的
depency.zip
文件,此为云函数依赖文件 - 下载Release中的
run.zip
文件,此为运行函数 - 解压
run.zip
,安装好依赖后,填写ID.yaml
文件 ,填写后运行getinfo.py
,此函数用于获取您昨天填写的信息,并自动去除几个由index.py
文件自动生成的参数 - 运行
getinfo.py
后,疫情打卡提交信息.txt
文件已有内容后,压缩文件夹,待上传云函数 run.zip
文件中的index.py
等文件版本较为落后,建议您下载源文件,替换run.zip
文件中的文件以保持最新版本
由于腾讯云函数目前仅支持python3.6及3.7版本,且3.7版本缺乏必要的依赖库,因此本项目使用Python3.6开发。建议您使用Anaconda创建虚拟环境,并进行虚拟环境下依赖库管理,建议使用Pycharm编辑并运行代码。
-
Anaconda
解压
run.zip
后,在解压的文件夹目录下打开cmd
运行此命令conda install --yes --file requirements.txt
,安装依赖。关于将conda添加到环境变量,您可以访问此网页 。 -
PIP
如果您使用的是pip安装指令,在解压的文件夹目录下打开
cmd
运行此命令pip install -r requirements.txt
,以安装依赖,关于将pip添加到环境变量,您可以访问此网页 。 -
pipenv
在Pycharm中使用pipenv创建环境时,会自动根据
requirements.txt
文件安装所需依赖,如果下载依赖库速度慢,您可以科学上网或将Pipfile
文件中的[[source]]
下的url
更改为https://mirrors.aliyun.com/pypi/simple
, 有关pipenv环境的创建及激活,您可以参考此链接或是自行搜索 -
项目依赖的库如下:(详见
requirements.txt
文件)requests==2.27.1 pyyaml==3.12 pydes==2.0.1 pycryptodome==3.10.1
在ID.yaml
文件中按备注填写网上办事大厅的用户名(username)、密码(password);发送邮件的邮箱(sender),邮件授权码(password),接受邮件的邮箱地址(receivers),以及邮箱smtp服务器(smtp_server)等信息。
使用腾讯云函数实现自动打卡,部署步骤如下:(如果您无法看到图片,您可以参考此链接修改hosts文件,或是采用科学上网)
-
点击上方腾讯云函数超链接,注册认证后,进入控制台,点击左边的层。
-
点击新建,名称随意,然后点击上传zip,选择release中的dependency.zip上传,然后选择运行环境python3.6,然后点击确定。
-
点击左边的函数服务,新建云函数,名称随意,运行环境选择python3.6,创建方式选择空白函数,按如下步骤后,点击完成。
-
点击层管理,点击绑定,选中刚刚创建的层,点击确定。
-
左边点击触发管理,创建触发器,名称随意,触发周期选择自定义,然后配置cron表达式,下面的表达式表示每天早上8点05分执行,如果需要自定义,请在
index.py
中同步修改create_info
函数中的参数,默认是8点05分。0 5 8 * * * *
-
然后就可以测试云函数了,绿色代表云函数执行成功,红色代表云函数执行失败(失败的原因大部分是由于依赖造成的)。返回结果是success.,代表自动提交成功,如遇到问题,请仔细查看日志。
本项目使用邮件提醒您自动打卡是否成功,可能日后会有微信提醒。请按打卡配置配置好ID.yaml
文件,邮件授权码以163邮箱为例。
如果你也懂得一些python
知识,欢迎fork
...定制属于你自己的脚本
学校的健康日报打卡有多个入口:
- 今日校园
- 微门户
- 网上办事大厅
由于安卓抓包较为繁琐,所以本项目是基于网上办事大厅这个入口开发的,如果代码运行有问题,你可以通过网上办事大厅进入健康日报打卡,按下F12打开开发者工具,进行抓包分析。此外,苏康码的截图需要浏览器渲染,受制于腾讯云函数的限制,很难在云函数中实现,如果你有好的解决方法,欢迎提交commit
- 是否需要截图验证
- 苏康码截图
- 行程码截图
- 微信打卡提醒
- 时间参数匹配
此项目参考了@ZimoLoveShuang大佬的 auto-submit项目,尤其是本项目的encrypt.py
文件,非常感谢。
感谢JetBrains提供的 PyCharm 教育版软件
如果您有建议或者bug提交,您可以通过Issues提交