天天看点

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")