Как сохранить сессию браузера при работе с библиотекой selenium?
Нужно залогиниться на сайте и потом перейти на главную страницу нажав кнопку "На главную", для дальнейшего парсинга. Логирование получается реализовать:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
browser = webdriver.Firefox()
type(browser)
browser.get('https://www.qrz.ru/passport/login')
emailElem = browser.find_element_by_id('email-login')
emailElem.send_keys('емейл.ru')
passElem = browser.find_element_by_id('password')
passElem.send_keys('123456')
passElem.send_keys(Keys.ENTER)
time.sleep(2)
Оказываюсь на своей страничке в личном кабинете. А вот дальше как быть? Как перейти на главную страницу?
Ответы (2 шт):
Автор решения: D. Violet
→ Ссылка
Вы можете сохранить текущие куки как объект 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)
Автор решения: ykoavlil
→ Ссылка
Selenium автоматически сохраняет куки до закрытия браузера.
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
browser = webdriver.Chrome()
browser.get('https://www.qrz.ru/passport/login')
time.sleep(3)
# Принятие поп-ап "Этот сайт использует cookies"
browser.find_element(By.XPATH, '/html/body/div[5]/div/button').click()
# Авторизация
browser.find_element(By.ID,'email-login').send_keys('[email protected]')
browser.find_element(By.ID,'password').send_keys('123456')
browser.find_element(By.XPATH, '//*[@id="login-form"]/div[3]/input').click()
time.sleep(3)
# Переход на главную уже авторизованным пользователем
browser.get('https://www.qrz.ru')