WebDriver提供了操作Cookie的相關方法,可以讀取、添加和刪除cookie信息,以下將分別介紹一下
模擬登陸並獲取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文集傳送門:
標題 | 簡介 |
---|---|
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)關閉瀏覽器 | 詳細介紹兩種關閉窗口的區別 |
歡迎留言吐槽