东南大学 每日健康上报及入校申请自动化脚本
免责声明:本脚本仅为个人为学习python之目的所编写,使用该脚本造成的一切后果均由使用者承担。
本人仍然提倡每日按时手动进行疫情上报与入校申请,配合学校进行好疫情防控。
项目fork自https://github.com/wangyz1997/seu_daily_report
这是一个每日健康上报及入校申请自动化脚本,通过正确配置之后,可以实现每日自动健康上报和入校申请,并通过微信或邮件推送上报结果。
如果你用的浏览器是Google Chrome ,那么
-
请检查安装的Chrome版本:浏览器右上角的3个点-帮助-关于Google Chrome。
-
进入 淘宝Chrome Driver镜像站 下载与浏览器相同版本的Chrome Driver。
-
下载后与本脚本文件放置于同一目录中,Windows平台命名为
chromedriver.exe
。Linux / macOS平台请将可执行文件放置于与脚本相同的目录中,并自行修改脚本中
executable_path
中的文件名。
如果你用的浏览器是 Mozilla Firefox ,那么
-
请检查安装的Firefox版本:浏览器右上角3条杠-帮助-关于Firefox。
-
进入 淘宝geckodriver镜像站 下载与浏览器相同版本的geckodriver。
-
下载后与本脚本文件放置于同一目录中, Windows平台命名为
geckodriver.exe
。Linux / macOS平台请将可执行文件放置于与脚本相同的目录中,并自行修改脚本中
executable_path
中的文件名。
提示:本脚本目录中已经放置
chromedriver_90.0.4430.24
和geckodriver_v0.29.0
,若运行有问题,请下载与浏览器相同版本的WebDriver进行替换。
本脚本需要使用Python3.x
运行,并依赖selenium
包与requests
包,可使用pip
进行安装。
# Windows
pip install requests selenium -i https://pypi.douban.com/simple --user
# unix-python3
pip3 install requests selenium -i https://pypi.douban.com/simple --user
-
将脚本目录中的
config_sample.json
重命名为config.json
。 -
打开
config.json
,根据需求填写相关字段,字段描述如下表所示。字段名 描述 是否必填 username
一卡通账号(9位) YES password
一卡通密码 YES temp_range
体温范围 YES places
申请入校区域 NO reasons
申请入校理由 NO server_chan_key
Server酱SCKEY NO email_addr
接收推送的邮箱地址 NO enable_enter_campus_apply
开启/关闭入校申请功能(默认关闭,填写true / false) YES browser
选择浏览器类型(chrome / firefox) YES places
与reasons
中还可以自定义您每日想要填写的入校区域与入校理由,其中的第一个元素为周一,最后一个元素为周日。reasons
的取值0-7
所对应的理由如下表所示。理由 对应数字 到教学楼上课 0 实验室做实验 1 到办公室科研 2 到图书馆学习借书 3 到职能部门、院系办手续 4 开会 5 往返无线谷实验室 6 其他 7
若想要同时为多个用户进行健康上报或入校申请,只需要将config.json
中users
字段的配置信息复制多份,每一份均填写一位用户的信息即可。
例如:
"users": [
{
"username": "xxxxxx", "password": "***",
"temp_range": [35.5, 36.2],
"places": [],
"reasons": [],
"server_chan_key": "",
"email_addr": ""
},
{
"username": "xxxxxx", "password": "***",
"temp_range": [35.1, 36.8],
"places": [],
"reasons": [],
"server_chan_key": "",
"email_addr": ""
}
]
Server酱 是一个微信推送工具,可以将服务器端执行结果推送到您的微信上。
本脚本支持 server酱 推送,您只需要按照其网站上的指引,使用GitHub
账号登录并扫码绑定您的微信,即可获得SCKEY
。
将取得的SCKEY
填入config.json
中的server_chan_key
字段中,即可启用微信推送功能。
提示:将
server_chan_key
留空,即可禁用微信推送功能。
本脚本支持邮件推送,您只需要在config.json
文件中填写email_addr
字段。即可启用邮件推送功能。
提示:将
email_addr
留空,即可禁用邮件推送功能。
在正式运行脚本之前,请确认脚本目录下的文件和下面相同:
|-- seu_daily_report
|-- .gitignore
|-- autorun.bat
|-- chromedriver.exe
|-- geckodriver.exe
|-- config_sample.json
|-- main.py
|-- README.md
|-- img
之后,使用python
运行main.py
或直接运行auto.bat
(Windows平台下)即可。
可以将脚本部署到服务器上,设置定时计划任务,实现每日自动上报。
下面介绍如何在Windows上设置实现每日自动上报。