1. 程式人生 > 程式設計 >Selenium獲取登入Cookies並新增Cookies自動登入的方法

Selenium獲取登入Cookies並新增Cookies自動登入的方法

本章中用到的關鍵方法如下:

  • get_cookies(): 獲得所有cookie資訊。
  • get_cookie(name): 返回字典的key為“name”的cookie資訊。
  • add_cookie(cookie_dict): 新增cookie。“cookie_dict”指字典物件,必須有name 和value 值。
  • delete_cookie(name,optionsString):刪除cookie資訊。“name”是要刪除的cookie的名稱,“optionsString”是該cookie的選項,目前支援的選項包括“路徑”,“域”。
  • delete_all_cookies(): 刪除所有cookie資訊。

1、模擬登陸並獲取Cookies

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')

# 模擬登陸
driver.find_element_by_link_text('登入').click()
time.sleep(2)
driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_10__footerULoginBtn"]').click()
time.sleep(2)
driver.find_element_by_name("userName").send_keys("賬號")
driver.find_element_by_name("password").send_keys("密碼")
driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_10__submit"]').click()
time.sleep(20) #可能會出現驗證碼,手動點一下

# 獲取cookies
cookies = driver.get_cookies()
print(cookies)
driver.quit()

2、新增Cookies自動登入

注:

獲取Cookies的時候每個字典的欄位不統一,全部新增會報錯,所以本人只添加了比較重要的幾個欄位。
把程式碼中cookies欄位的list換成上一步獲取的內容,或者自己構建。

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
time.sleep(2)
cookies = [] #換成上一步獲取的Cookies
for cookie in cookies:
 driver.add_cookie(
 {
  'domain':cookie['domain'],'name': cookie['name'],'value':cookie['value'],'path': cookie['path']
 }
 )
# # 重新整理頁面
driver.refresh()

# driver.quit() #為方便檢視,頁面就不關了

selenium 使用 cookies

selenium 需要先開啟一個網址,才能載入進去cookies(知道cookies是哪個網站的)。新增完cookies再開啟網址,使用cookies

前面讀取的cookies 是一個包含著每一個cookies的name,value 的字典,即name1:value1,name2:value2字典。遍歷新增網站使用的每一個cookies的name,value.

tbCookies = readTaobaoCookies()

brower.get("https://www.taobao.com")
for cookie in tbCookies:
 brower.add_cookie({
 "domain":".taobao.com","name":cookie,"value":tbCookies[cookie],"path":'/',"expires":None
 })
brower.get("https://www.taobao.com")

Selenium文集傳送門:

標題 簡介
Python爬蟲 - Selenium(1)安裝和簡單使用 詳細介紹Selenium的依賴環境在Windows和Centos7上的安裝及簡單使用
Python爬蟲 - Selenium(2)元素定位和WebDriver常用方法 詳細介紹定位元素的8種方式並配合點選和輸入、提交、獲取斷言資訊等方法的使用
Python爬蟲 - Selenium(3)控制瀏覽器的常用方法 詳細介紹自定義瀏覽器視窗大小或全屏、控制瀏覽器後退、前進、重新整理瀏覽器等方法的使用
Python爬蟲 - Selenium(4)配置啟動項引數 詳細介紹Selenium啟動項引數的配置,其中包括無介面模式、瀏覽器視窗大小設定、瀏覽器User-Agent (請求頭)等等
Python爬蟲 - Selenium(5)滑鼠事件 詳細介紹滑鼠右擊、雙擊、拖動、滑鼠懸停等方法的使用
Python爬蟲 - Selenium(6)鍵盤事件 詳細介紹鍵盤的操作,幾乎包含所有常用按鍵以及組合鍵
Python爬蟲 - Selenium(7)多視窗切換 詳細介紹Selenium是如何實現在不同的視窗之間自由切換
Python爬蟲 - Selenium(8)frame/iframe表單巢狀頁面 詳細介紹如何從當前定位的主體切換為frame/iframe表單的內嵌頁面中
Python爬蟲 - Selenium(9)警告框(彈窗)處理 詳細介紹如何定位並處理多類警告彈窗
Python爬蟲 - Selenium(10)下拉框處理 詳細介紹如何靈活的定位並處理下拉框
Python爬蟲 - Selenium(11)檔案上傳 詳細介紹如何優雅的通過send_keys()指定檔案進行上傳
Python爬蟲 - Selenium(12)獲取登入Cookies,並新增Cookies自動登入 詳細介紹如何獲取Cookies和使用Cookies進行自動登入
Python爬蟲 - Selenium(13)設定元素等待 詳細介紹如何優雅的設定元素等待時間,防止程式執行過快而導致元素定位失敗
Python爬蟲 - Selenium(14)視窗截圖 詳細介紹如何使用視窗截圖
Python爬蟲 - Selenium(15)關閉瀏覽器 詳細介紹兩種關閉視窗的區別

到此這篇關於Selenium獲取登入Cookies並新增Cookies自動登入的方法的文章就介紹到這了,更多相關Selenium獲取登入Cookies內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!