python基于selenium的学习通健康自动填报

学校每天都要通过学习通进行健康填报
每天填报内容大同小异吧
但是也不能不填
要不然导员就找你喝茶
我喝茶睡不着
所以。。。。。

selenium还是很香的,其实没什么技术含量,只是在重复造*而已

大概思路就是先实例化一个对象,然后通过自带的方法通过xpth等方法找到标签,进行写入或者点击操作,最适合我这种什么都不懂的小白操作啦,当然要想跑起来除了导入的包外还需要下一个谷歌驱动器,额edge也行,都行。。。

我这里用的是谷歌,下载地址放在这里

谷歌驱动:
http://chromedriver.storage.googleapis.com/index.html
版本映射关系:
https://blog.csdn.net/huilan_same/article/details/51896672

源码

from selenium import webdriver
from time import sleep
from selenium.webdriver.chrome.options import Options


chrome_options = Options()
chrome_options.add_argument('--headless')  # 无头浏览器
bro = webdriver.Chrome(executable_path=r'谷歌驱动的绝对路径',options=chrome_options)  # 实例化对象
bro.get('http://passport2.chaoxing.com/login?fid=&newversion=true&refer=http%3A%2F%2Fi.chaoxing.com')  # 学习通登录url
username_tag = bro.find_element_by_id('phone')
username_tag.send_keys('你的账号')
password_tag = bro.find_element_by_id('pwd')
password_tag.send_keys('你的密码')
btn = bro.find_element_by_id('loginBtn')
btn.click()
bro.get('https://uc.chaoxing.com/mobileSet/homePage?fid=121890&customizecolor=0xFFFFFF&time=20210103085130342&enc=EE9D0B4C0E4393B0C64851D542A6E14F')  # 健康填报url
# sleep(5)
aniu = bro.find_element_by_xpath('/html/body/div[3]/div/div/div[1]/div[2]/div[1]')
aniu.click()
morning_tag = bro.find_element_by_xpath('//*[@id="10"]/div[3]/input')
morning_tag.send_keys('36.6')
noon_tag = bro.find_element_by_xpath('//*[@id="11"]/div[3]/input')
noon_tag.send_keys('36.7')
night_tag = bro.find_element_by_xpath('//*[@id="12"]/div[3]/input')
night_tag.send_keys('36.5')
no_tag = bro.find_element_by_xpath('//*[@id="13"]/div[3]/input')
no_tag.send_keys('无')
b = bro.find_element_by_xpath('//*[@id="forms"]/div[2]/div[5]/div/div[2]/p')
b.click()
# sleep(5)
bro.quit()

然后就到了让它每天执行一次的环节
通过跟同学沟通发现我的linux服务器并不能部署
所以决定把它直接放在自己的电脑上,每天开电脑的时候自动执行(再加一个无头更好用)

具体措施:

1.在py文件中把驱动改成绝对路径
2.python+py文件的绝对路径写入bat文件中
3.在任务管理中添加该任务(每天一次)
python基于selenium的学习通健康自动填报
over!!!
特别鸣谢:殷大佬、邱大佬、罗大佬

上一篇:爬虫逆向基础,理解 JavaScript 模块化编程 webpack


下一篇:JavaScript的函数IIFE