python - 如何在 Selenium 中保留登录状态

标签 python html selenium authentication webdriver

我使用 selenium 和 bs4 来解析网页。并且网页使用扫描二维码和验证码登录。

我使用 WebDriverWait 等待用户登录

wait = ui.WebDriverWait(driver, 60)         # timeout after 60 seconds, just leave time for user to login

wait.until(lambda driver: driver.execute_script('return isLogin();'))

然后我登录后,就开始解析工作了。

它运行良好,除了每次运行脚本时,它都会打开一个新的浏览器窗口并且我需要登录。

如何保持登录状态,避免每次运行脚本时都登录。

最佳答案

为了避免每次登录都可以使用cookies。 例如:

import pickle

from selenium import webdriver 


browser = webdriver.Chrome()
browser.get("http://www.google.com")
pickle.dump(browser.get_cookies(), open("cookies.pkl","wb"))

稍后下载 cookies:

import pickle

from selenium import webdriver


browser = webdriver.Chrome()
browser.get("http://www.google.com")
cookies = pickle.load(open("cookies.pkl", "rb"))
for cookie in cookies:
    browser.add_cookie(cookie)

关于python - 如何在 Selenium 中保留登录状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58620609/

相关文章:

javascript - bootstrap 正方形和矩形响应具有相同的高度

html - Flex 换行列 : fill the available width with columns

java - 错误 : Could not connect to www. browserstack.com!响应代码:[对象对象]

python - Gunicorn + nginx - 忽略 EPIPE

python - 寻找数字编码分类变量之间的相关性?

html - CSS - 两个具有相同类的 CSS 文件无法正确加载

Python - 无法使用 selenium chromewebdriver 下载文件 - 'Failed - Download error'

python - 提取模式中的单词

python - 如何制作 Plotly Indicator 仪表网格?

java - 通过 Selenium 中的 xpath 定位器匹配 div 的问题