登錄流程:
- 實例化一個driver,然后driver.get()發送請求
- 最重要的:切換iframe子框架,因為豆瓣的網頁中的登錄那部分是一個ifrme,必須切換才能尋找到對應元素
- 利用selenium切換到賬號密碼登錄
- 利用selenium輸入賬戶和密碼
- 利用selenium點擊登錄按鈕
- 然后利用字典推導式保存了一下cookie
代碼實現:
1 import time 2 from selenium import webdriver 3 4 # 實例化driver 5 driver = webdriver.Chrome() 6 driver.get('https://www.douban.com/') 7 ## 切換iframe子框架 8 driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0]) 9 10 driver.maximize_window() # 最大化窗口 11 driver.find_element_by_css_selector('li.account-tab-account').click() # 點擊密碼登錄的標簽 12 driver.find_element_by_id('username').send_keys('13343396443') 13 driver.find_element_by_id('password').send_keys('lilei120400') 14 # 點擊‘登錄豆瓣’按鈕 15 # 這里需要注意,當元素的class屬性有好幾個的時候,此函數的參數填class的第一個就好 16 driver.find_element_by_class_name('btn').click() # 元素的class屬性:btn btn-account 17 # 獲取cookies,字典推導式 18 cookies = {i['name']: i['value'] for i in driver.get_cookies()} 19 print(cookies) 20 21 time.sleep(5) 22 driver.quit() # 退出瀏覽器