天天看點

selenium之如何加載使用者配置,跳過登入驗證(攻克大衆難點)

一、利用ChromeOptions() 加載使用者配置

1、在谷歌浏覽器中輸入chrome://version,檢視安裝目錄及緩存目錄,這個是windows上的配置

selenium之如何加載使用者配置,跳過登入驗證(攻克大衆難點)

在執行代碼之前,關閉已打開的谷歌浏覽器,防止chromedriver挂起:

from selenium import webdriver
import time
import os
option_b = webdriver.ChromeOptions()
# 加載使用者配置 繞過登入
option_b.add_argument(f"--user-data-dir={os.path.expanduser('~')}\\AppData\\Local\\Google\\Chrome\\User Data")
option_b.add_argument(" --profile-directory=Profile 1")

chrome_driver = "./chromedriver_92.0.4515.107.exe"
driver_b = webdriver.Chrome(chrome_options=option_b, executable_path=chrome_driver)
driver_b.maximize_window()
driver_b.get("https://www.baidu.com")
time.sleep(5)
driver_b.quit()



# 執行個體化ChromeOptions
option = webdriver.ChromeOptions()

# 加載使用者配置 繞過登入
option.add_argument(f"--user-data-dir={os.path.expanduser('~')}\\AppData\\Local\\Google\\Chrome\\User Data")
option.add_argument(" --profile-directory=Default")


chrome_driver = "./chromedriver_92.0.4515.107.exe"
driver = webdriver.Chrome(chrome_options=option, executable_path=chrome_driver)
driver.maximize_window()
driver.get("https://www.baidu.com")
time.sleep(5)
driver.quit()      

 2、在谷歌浏覽器中輸入chrome://version,檢視安裝目錄及緩存目錄,這個是mac上的配置

selenium之如何加載使用者配置,跳過登入驗證(攻克大衆難點)

在執行代碼之前,關閉已打開的谷歌浏覽器,同樣是要現在改使用者資料下先登入後關閉:

from selenium import webdriver
from time import sleep

# 執行個體化ChromeOptions
option = webdriver.ChromeOptions()

# 加載使用者配置 繞過登入
option_b.add_argument('--user-data-dir=/Users/leiyuxing/Library/Application Support/Google/b')
option.add_argument('--profile-directory=b')


driver = webdriver.Chrome(chrome_options=option)
driver.maximize_window()
#driver.get("https://www.baidu.com")
driver.get
sleep(5)
driver.quit()      

執行完成後,打開的頁面是已經登入的狀态

二、利用cookies跳過登入

1、啟用谷歌插件EditThisCookie抓取百度登入cookies/抓包軟體也可以擷取到cookies哦:

selenium之如何加載使用者配置,跳過登入驗證(攻克大衆難點)
from selenium import webdriver

# 跳過cookies驗證
driver = webdriver.Chrome()
driver.maximize_window()
#将身份識别的cookies添加到本次的浏覽器當中--用字典表達
'''
如:driver.add_cookie({'name' : 'foo', 'value' : 'bar'})
例如:鍵值對{"lg_":"aaabbb"}
需要指定name及value對應的值
cookie={“name”:“lg_”,“value”:“aaabbb”}
'''
cookies_1={"name":"BAIDUID","value":"BAIDUID的value值--以具體的為準"} 
cookies_2={"name":"BDUSS","value":"BDUSS的value值--以具體的為準"}
#先通路以下首頁
driver.get("https://www.baidu.com/")
#将cookies添加上去 
driver.add_cookie(cookies_1)
driver.add_cookie(cookies_2)
 
#通路首頁
driver.get("https://www.baidu.com/?tn=62095104_7_oem_dg")