你是否还在为每天的体温填报而烦恼?你是否还在为每天被@而烦恼??骚年啊,看完这篇文章你的体温填报不再是问题。
一、解决方案
1.方案
使用python编写selenium脚本,并在服务器中设置每日自动执行。方案仅限智慧济大,其他学校的网站无法验证
2.方案需求
硬件:一台能全天运行的电脑或服务器(推荐使用AWS云服务器,学生用户免费一年,足够撑到毕业)
软件:python3、selenium、浏览器及其相应的selenium驱动
selenium自动化测试环境配置方法,请自行去数据采集的课程群里找上课时的视频。
二、selenium脚本
from selenium import webdriver
import time
def login(User, Pwd):
Driver.get("https://sso.ujn.edu.cn/tpass/login") # 访问登录界面
Driver.find_element_by_xpath("//div[@class='login_box_up']/input[@type='text']").send_keys(User) # 输入用户名
Driver.find_element_by_xpath("//div[@class='login_box_up']/input[@type='password']").send_keys(Pwd) # 输入密码
Driver.find_element_by_xpath("//span[@class='landing_btn_bg']/input").click() # 点击登录
Driver.get( # 访问体温填报页面
"http://ehall.ujn.edu.cn/fp/view?m=fp#from=hall&serveID=599a1e21-79aa-423f-aee9-4a18c9310f0b&act=fp/serveapply")
time.sleep(5) # 睡一会等待弹窗出来
Driver.find_element_by_xpath( # 点击“我已阅读并确认 ”
"//div[@class='layui-layer-content']/div/div/div[@class='modal-footer']/button[contains(text(),'我已阅读并确认 ')]").click()
Driver.find_element_by_xpath( # 点击申请
"//div[@class='col-md-2 col-sm-2 col-xs-12 btn-22-center padding-none']/button").click()
time.sleep(5) # 等待填报完成(一天无论填报几次都适用)
Driver.get("http://one.ujn.edu.cn/up/logout") # 注销
time.sleep(5)
if __name__ == '__main__':
Driver = webdriver.Chrome() # 获取浏览器驱动
Driver.maximize_window() # 最大化窗口
Users = ["用户1", "用户2"] # 用户列表
Pwds = ["密码1", "密码2"] # 密码列表
journal = open("journal.csv", "a+", encoding="utf-8") # 编写日志
for (User, Pwd) in zip(Users, Pwds): # 遍历用户名、密码
try:
login(User, Pwd) # 登录并填报体温
except:
date = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) # 获取现在的时间
journal.write(User + "," + date) # 记录用户名和出错时间
continue # 继续
三、设置python脚本定时执行
Windows环境服务器请参考这里:点击跳转(未测试过)
Linux环境服务器请参考这里:点击跳转(测试过可用)