Как сохранить и загрузить куки с помощью Python + Selenium WebDriver


Как я могу сохранить все куки в Python Selenium WebDriver в txt-файл, а затем загрузить их позже? В документации ничего не говорится о функции getCookies.

3 52

3 ответа:

вы можете сохранить текущие файлы cookie в качестве объекта python с помощью pickle. Например:

import pickle
import selenium.webdriver 

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

и позже, чтобы добавить их обратно:

import pickle
import selenium.webdriver 

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

помните, что вы можете добавить cookie только для текущего домена. если вы хотите добавить свой аккаунт Goolge.

Do

browser.get('http://google.com')
for cookie in cookies:
    browser.add_cookie(cookie)

когда вам нужны куки от сеанса к сеансу есть другой способ сделать это, используйте параметры Chrome user-data-dir для того, чтобы использовать папки в качестве профилей, я запускаю:

chrome_options = Options()
chrome_options.add_argument("user-data-dir=selenium") 
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("www.google.com")

вы можете сделать здесь логины, которые проверяют взаимодействие с человеком, я делаю это, а затем куки, которые мне нужны теперь каждый раз, когда я запускаю Webdriver с этой папкой, все там. Вы также можете вручную установить расширения и иметь их в каждом сеансе. Второй раз, когда я бегу, все печенье там:

chrome_options = Options()
chrome_options.add_argument("user-data-dir=selenium") 
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("www.google.com") #Now you can see  the cookies, the settings, Extensions and the logins done in the previous session are present here

преимущество заключается в том, что вы можете использовать несколько папок с различными настройками и куки, расширения без необходимости загружать, выгружать куки, устанавливать и удалять расширения, изменять настройки, изменять логины с помощью кода, и, следовательно, нет никакого способа, чтобы иметь логику разрыва программы, и т.д. Также это быстрее, чем havin, чтобы сделать все это с помощью кода.