Как сохранить и загрузить куки с помощью Python + Selenium WebDriver
Как я могу сохранить все куки в Python Selenium WebDriver в txt-файл, а затем загрузить их позже? В документации ничего не говорится о функции getCookies.
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, чтобы сделать все это с помощью кода.