首頁  >  文章  >  後端開發  >  python+selenium實現簡易地疫情資訊自動打卡簽到功能

python+selenium實現簡易地疫情資訊自動打卡簽到功能

coldplay.xixi
coldplay.xixi轉載
2020-08-22 17:21:222536瀏覽

python+selenium實現簡易地疫情資訊自動打卡簽到功能

【相關學習推薦:python影片教學

由於學校要求我們每天都要在官網打卡簽到疫情訊息,多多少少得花個1分鐘操作,程式設計師的尊嚴告訴我們堅決不能手動打卡。正巧最近學了selenium,於是畫了個5分鐘寫了個自動打卡簽到地小程式。

測試環境:python3.7 , selenium,chr​​ome瀏覽器

seleium和chromedriver的配置在這裡就不講了,這裡放個連接

#首先找到學校信息入口網站的登入頁:

python+selenium實現簡易地疫情資訊自動打卡簽到功能


#导入selenium中的webdriver
from selenium import webdriver
import time
url = 'http://my.hhu.edu.cn/login.portal' #信息门户的登陆页面
driver = webdriver.Chrome() # 初始化一个Chrome的驱动
driver.get(url) # 让自动化模块控制的Chrome浏览器跳转到信息门户登陆页面

這時候就該模擬登入了,先找到使用者名稱的input框。按ctrl shift c,開啟開發者工具,點選使用者名稱右邊的input框,即可在右邊的開發者工具中找到input框對應的程式碼。

python+selenium實現簡易地疫情資訊自動打卡簽到功能
python+selenium實現簡易地疫情資訊自動打卡簽到功能

右鍵點選模組,點選copy->copy Xpath 。 (Xpath是用來定位該input控制位置的)

root = '' #赋值自己的用户名
password = '' # 赋值自己的密码
driver.find_element_by_xpath('//*[@id="username"]').send_keys(root) #将xpath赋值在前面的括号中,通过send_keys方法给input赋值

#类似的,赋值密码框的xpath,赋值密码
driver.find_element_by_xpath('//*[@id="password"]').send_keys(password)

帳號密碼輸完了,就該點擊登陸了。按ctrl shift c,點選登入按鈕,在右邊的開發者工具對應的程式碼區塊右鍵copy->copy xpath,取得button的xpath。

driver.find_element_by_xpath('//*[@id="changeBack"]/tbody/tr/td[2]/table[1]/tbody/tr[2]/td/p/input[1]').click()
#通过click方法点击登录框,跳转到登陆后的页面

python+selenium實現簡易地疫情資訊自動打卡簽到功能

在登陸後的頁面中,找到了健康回報的功能方塊。點擊該功能框,發現頁面跳到了簽到頁面:python+selenium實現簡易地疫情資訊自動打卡簽到功能

複製該頁面的網址,讓程式在登陸後跳到該頁面:

form = 'http://form.hhu.edu.cn/pdc/form/list'
driver.get(form)

讓程式點擊“本科生健康打卡:

driver.find_element_by_xpath('/html/body/p[1]/p[4]/p/section/section/p/a/p[2]').click()

會跳到以下的頁面

python+selenium實現簡易地疫情資訊自動打卡簽到功能

#點擊提交,即完成簽到

driver.find_element_by_xpath('//*[@id="saveBtn"]').click()

完整的程序:

from selenium import webdriver
import time
root = ''
password = ''
url = 'http://my.hhu.edu.cn/login.portal'
driver = webdriver.Chrome()
driver.get(url)
driver.find_element_by_xpath('//*[@id="username"]').send_keys(root)
driver.find_element_by_xpath('//*[@id="password"]').send_keys(password)
driver.find_element_by_xpath('//*[@id="changeBack"]/tbody/tr/td[2]/table[1]/tbody/tr[2]/td/p/input[1]').click()
form = 'http://form.hhu.edu.cn/pdc/form/list'
driver.get(form)
driver.find_element_by_xpath('/html/body/p[1]/p[4]/p/section/section/p/a/p[2]').click()
driver.find_element_by_xpath('//*[@id="saveBtn"]').click()

相關學習推薦:程式設計影片

#

以上是python+selenium實現簡易地疫情資訊自動打卡簽到功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:jb51.net。如有侵權,請聯絡admin@php.cn刪除