如何使用 python 和 Selenium 将 cookie 保存在浏览器中

Posted

技术标签:

【中文标题】如何使用 python 和 Selenium 将 cookie 保存在浏览器中【英文标题】:How to get cookies saved in browser with python and Selenium 【发布时间】:2021-10-06 08:11:19 【问题描述】:

我要使用浏览器中已经存在的 cookie 并在 Selenium 中使用它,我知道你不能只使用 Selenium 来使用它,但是有没有我可以使用的库来将 cookie 保存在 json 中变量并在 Selenium 中使用它?如何使用python提取保存在浏览器中的cookie?不仅是 Chrome,其他的也最好。

这是我目前的代码:

option = Options()
option.add_argument("--no-sandbox")        
driver = webdriver.Chrome(options=option)
driver.get("https://google.com")
wait = WebDriverWait(driver, 5)

如何从浏览器获取 cookie,将其保存为 json 格式并与 Selenium 一起使用?

【问题讨论】:

【参考方案1】:
import pickle
import os
from selenium import webdriver
import time


option = webdriver.ChromeOptions()
option.add_argument("--no-sandbox")        
driver = webdriver.Chrome(options=option)
driver.get("https://google.com")
time.sleep(5)
if os.path.exists('cookies.pkl'):
    cookies = pickle.load(open("cookies.pkl", "rb"))
    for cookie in cookies:
        driver.add_cookie(cookie)
    driver.refresh()
    sleep(5)
pickle.dump(driver.get_cookies(), open("cookies.pkl", "wb"))

pickle 将帮助您保存和添加 cookie。但是,请务必将它们添加到正确的域中,否则可能会出错。

【讨论】:

但是Google页面只是一个例子,我实际上想在另一个页面上做,而我使用浏览器cookie的页面是一个重定向我登录的页面,这就是我需要的原因我需要使用浏览器中已经存在的cookie 以上代码没有问题。您必须知道何时插入 cookie。 如果我想获取浏览器的cookie并在这个页面上使用它,我会得到它吗? discord.com/channels/@me 是的,你可以。但是,没有人能保证它会允许您自动登录,因为这取决于各种因素,包括您尝试使用 cookie 的域。 它不起作用,因为没有cookies.pkl 文件,所以你的代码将使用cookies 保存文件,但是如果我什至没有经过身份验证,它会保存什么cookie?

以上是关于如何使用 python 和 Selenium 将 cookie 保存在浏览器中的主要内容,如果未能解决你的问题,请参考以下文章

如何在python中保存selenium和opencv的部分截图

如何使用 Python 将选项传递给 Selenium Chrome 驱动程序?

如何通过 Selenium WebDriver 和 Python 定位用户名和密码元素

如何使用 selenium webdriver (python) 选择、复制和粘贴元素中的所有内容

如何使用 Selenium Python 将鼠标从元素向上移动 9 个像素

如何使用 python 将 cookie 设置为 selenium webdriver 中的特定域?