北邮校园网自动登录
?? 1、登錄VPN
????? 想必大家的第二學期都是在家度過的,既然脫離了校園網的環境,想要查課表和成績就必須要登錄VPN。
?????? 登錄的步驟為:1、輸入用戶名
??????????????????????????????? 2、輸入密碼
??????????????????????????????? 3、點擊“登錄”按鈕
????
?代碼如下,別忘了強制等待
#登錄VPN def login_vpn():#用戶名driver.find_element(By.CSS_SELECTOR, '#user_name').send_keys(bupt_username1)time.sleep(1)#密碼driver.find_element(By.CSS_SELECTOR, '.password-input>input').send_keys(bupt_password1)time.sleep(1)# 點擊登陸按鈕driver.find_element(By.CSS_SELECTOR, 'button').click()#進入信息門戶driver.find_element(By.CSS_SELECTOR, '.block-group__item__wrap').click()time.sleep(1)?
2、登錄信息門戶系統
過程類似,但要注意,信息門戶系統登錄界面的輸入框和登錄按鈕在嵌套頁面里,因此需要附加一段進入嵌套頁面的代碼,這一點和登錄VPN不同。
#登錄信息門戶 def login_window():#找到iframe的id屬性switch_window(1)# time.sleep(3)iframe = driver.find_element(By.CSS_SELECTOR, '#loginIframe')# time.sleep(3)driver.switch_to.frame(iframe)#輸入用戶名和密碼driver.find_element(By.CSS_SELECTOR, '.item-box:nth-child(1) input:nth-child(1)#username').send_keys(bupt_username2)time.sleep(2)driver.find_element(By.CSS_SELECTOR, '.item-box:nth-child(1) input:nth-child(1)#password').send_keys(bupt_password2)time.sleep(2)driver.find_element(By.CSS_SELECTOR, '.submit-btn:nth-child(1)').click()3、登錄本科教務系統
?????? 登錄本科教務系統的過程分兩步,第一步是點擊“本科教務系統”按鈕,第二步是輸入用戶名、密碼并登錄。
?
#點擊進入本科教務系統 def switch_to_JiaowuSystem():time.sleep(2)#鼠標下拉頁面js= 'document.documentElement.scrollTop=document.documentElement.scrollHeight'driver.execute_script(js)time.sleep(2)driver.find_element(By.CSS_SELECTOR, '.col-xs-3:nth-child(1)').click()#登錄本科教務系統 def login_JiaowuSystem():#跳轉到窗口3switch_window(2)#輸入用戶名和密碼driver.find_element(By.CSS_SELECTOR, '#userAccount').send_keys(bupt_username3)time.sleep(2)driver.find_element(By.CSS_SELECTOR, '#userPassword').send_keys(bupt_password3)time.sleep(2)driver.find_element(By.CSS_SELECTOR, 'button').click()#切換頁面 def switch_window(page):windows = driver.window_handlesdriver.switch_to.window(windows[page])?????? 注意,由于此時已經開啟多個瀏覽器窗口,一定不要忘了加切換瀏覽器窗口的函數,否則將運行不出結果。
4、完整代碼
????????注:就本代碼而言,鑒于北郵校園網在一次性輸對密碼的情況下不需要驗證碼,本人未考慮驗證碼相關的問題。如果大家在跑程序的過程遇到出現驗證碼的情況,請關閉程序再跑,根據本人經驗,跑個三四次就不會出現驗證碼了。
源碼鏈接如下:鏈接:https://pan.baidu.com/s/1lehe-X-ttTpUvsitHlOSuQ
??????? ????????????????提取碼:h2gy
來自百度網盤超級會員V4的分享
該壓縮包里已經包含了谷歌和火狐的驅動,建議使用谷歌瀏覽器,如果驅動不適配,請自行更換適配的驅動
from constants import bupt_password1, bupt_password2,bupt_password3 from constants import bupt_username1,bupt_username2,bupt_username3 import time from selenium import webdriver # 瀏覽器對象 from selenium.webdriver.common.by import By # 定位器功能#登錄VPN def login_vpn():#用戶名driver.find_element(By.CSS_SELECTOR, '#user_name').send_keys(bupt_username1)time.sleep(1)#密碼driver.find_element(By.CSS_SELECTOR, '.password-input>input').send_keys(bupt_password1)time.sleep(1)# 點擊登陸按鈕driver.find_element(By.CSS_SELECTOR, 'button').click()#進入信息門戶driver.find_element(By.CSS_SELECTOR, '.block-group__item__wrap').click()time.sleep(1)#登錄信息門戶 def login_window():#找到iframe的id屬性switch_window(1)# time.sleep(3)iframe = driver.find_element(By.CSS_SELECTOR, '#loginIframe')# time.sleep(3)driver.switch_to.frame(iframe)#輸入用戶名和密碼driver.find_element(By.CSS_SELECTOR, '.item-box:nth-child(1) input:nth-child(1)#username').send_keys(bupt_username2)time.sleep(2)driver.find_element(By.CSS_SELECTOR, '.item-box:nth-child(1) input:nth-child(1)#password').send_keys(bupt_password2)time.sleep(2)driver.find_element(By.CSS_SELECTOR, '.submit-btn:nth-child(1)').click()#點擊進入本科教務系統 def switch_to_JiaowuSystem():time.sleep(2)#鼠標下拉頁面js= 'document.documentElement.scrollTop=document.documentElement.scrollHeight'driver.execute_script(js)time.sleep(2)driver.find_element(By.CSS_SELECTOR, '.col-xs-3:nth-child(1)').click()#登錄本科教務系統 def login_JiaowuSystem():#跳轉到窗口3switch_window(2)#輸入用戶名和密碼driver.find_element(By.CSS_SELECTOR, '#userAccount').send_keys(bupt_username3)time.sleep(2)driver.find_element(By.CSS_SELECTOR, '#userPassword').send_keys(bupt_password3)time.sleep(2)driver.find_element(By.CSS_SELECTOR, 'button').click()#切換頁面 def switch_window(page):windows = driver.window_handlesdriver.switch_to.window(windows[page])if __name__ == '__main__':driver = webdriver.Chrome()driver.get('https://webvpn.bupt.edu.cn/login')driver.implicitly_wait(10)driver.maximize_window()login_vpn()login_window()switch_to_JiaowuSystem()login_JiaowuSystem()input() # 阻止瀏覽器關閉driver.quit() bupt_username1 = '請自行輸入' bupt_password1= '請自行輸入' bupt_username2 = '請自行輸入' bupt_password2= '請自行輸入' bupt_username3= '請自行輸入' bupt_password3= '請自行輸入'總結
- 上一篇: 发散级数(中文维基百科)
- 下一篇: 用“番茄工作法”克服拖延症