前言
因为前面刚写过实验室安全考试系统自动答题脚本,而本文的健康信息定时上报也是用到了selenium模块,而且确实是每天都要在系统里上报健康信息,所以写了本文这么一个脚本,仅作为学习技术、学习知识记录之用,请勿滥用。
思路
其实也就是用到了python的selenium模块,模拟浏览器登录网站点击按钮实现上报功能,然后把脚本放到服务器上,再设置一个定时任务,每天7点运行一次这个python脚本。其实应该也可以抓上报时的请求包然后分析分析,然后用python定时提交请求,这条路我没试😗
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
from selenium import webdriver import getpass import time
if __name__=='__main__': url='https://e-report.neu.edu.cn/notes/create' username='*******' password='*************'
ch_options=webdriver.ChromeOptions() ch_options.add_argument("--headless") ch_options.add_argument("--no-sandbox") ch_options.add_argument("--disable-gpu") ch_options.add_argument("--disable-dev-shm-usage") dr=webdriver.Chrome(chrome_options=ch_options) dr.get(url) dr.find_element_by_id('un').send_keys(username) dr.find_element_by_id('pd').send_keys(password) dr.find_element_by_id('index_login_btn').click() if 'https://pass.neu.edu.cn/tpass/login' in dr.current_url: print("用户名或密码错误!请重新登录!!!") dr.find_element_by_xpath('//*[@id="app"]/main/div/form/div[1]/table/tbody/tr/td[1]/div/div/div/label[1]/span[1]/span').click() time.sleep(1) dr.find_element_by_xpath('//*[@id="app"]/main/div/form/div[3]/div[2]/table/tbody/tr[1]/td/div/div/div/label[1]/span[1]/span').click() dr.find_element_by_xpath('//*[@id="app"]/main/div/form/div[4]/div[2]/table/tbody/tr[1]/td/div/div/div/label[1]/span[1]/span').click() dr.find_element_by_xpath('//*[@id="app"]/main/div/form/div[6]/button').click() report_time=time.asctime( time.localtime(time.time()) ) print(report_time+':健康上报成功!!!')
|
定时任务
把本地写好并测试完成后的python脚本放到服务器上,因为使用了selenium模块,所以linux服务器上还需要配置环境(chrome、chromedriver、selenium等),具体参考我的另一篇文章linux下使用selenium模块。
然后再服务器上使用crontab设置定时执行python程序
crontab常用命令:
- 查询当前系统用户设置了哪些执行任务:
crontab -l
- 清空当前系统用户设置的所有任务:
crontab -r
- 编辑和设置当前系统用户要自动执行的任务:
crontab -e
- 检查crontab任务执行日志:
cat /var/log/cron
在linux服务器上执行crontab -e,然后在弹出的vim编辑界面最后添加下面这行定时任务(每天早上7点执行health_report.py文件把结果存到report.log文件中)
1 2
| 0 7 * * * python3 /home/lighthouse/python_workspace/health_report.py >> /home/lighthouse/python_workspace/report. log
|
查看定时任务列表,可以看到定时任务已经添加成功了
经第二天测试,确实是成功自动上报健康信息了🙃