使Selenium Chromedriver控制的浏览器像普通浏览器一样保存基于yubikey的身份验证会话

2024-05-18 18:21:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python和Selenium通过自动化从网页中提取一些数据。该网页通常每天需要一次基于yubikey的身份验证

但是,当.get()使用Chrome Webdriver访问该页面时,它每次都要求进行身份验证,我需要在脚本中添加wait(),以便在到达目标页面之前首先手动进行身份验证

我认为webdriver控制的浏览器不像普通浏览器那样保存身份验证会话

是否可以使webdriver控制的浏览器正常保存身份验证会话,这样我就不必每次对其进行手动身份验证


Tags: 数据脚本身份验证网页目标getselenium浏览器
1条回答
网友
1楼 · 发布于 2024-05-18 18:21:50

此示例将在您登录并保存cookies后使用cookies将您登录到stackoverflow.com

from selenium import webdriver
import time
import pickle

driver = webdriver.Firefox(executable_path=r'C:\\Path\\To\\geckodriver.exe')
driver.get('https://stackoverflow.com/')

time.sleep(60)
#########################

#LOGIN TO STACKOVERFLOW

########################
pickle.dump(driver.get_cookies(), open("C:/Path/to/cookie/cookies.pkl","wb"))
driver.close()

time.sleep(5)
driver = webdriver.Firefox(executable_path=r'C:\\Path\\To\\geckodriver.exe')
driver.get("https://stackoverflow.com/")
cookies = pickle.load(open("C:/Path/to/cookie/cookies.pkl", "rb"))
for cookie in cookies:
    driver.add_cookie(cookie)
driver.get("https://stackoverflow.com/")



保存cookie后,您可以直接使用cookie

from selenium import webdriver
import time
import pickle


driver = webdriver.Firefox(executable_path=r'C:\\Path\\To\\geckodriver.exe')
driver.get("https://stackoverflow.com/")
cookies = pickle.load(open("C:/Path/to/cookie/cookies.pkl", "rb"))
for cookie in cookies:
    driver.add_cookie(cookie)
driver.get("https://stackoverflow.com/")

相关问题 更多 >

    热门问题