Как залогиниться через cookies в вк с selenium?
Проблема: вк всё равно требует пароль, даже после загрузки кукисов.
Изменено: после перезагрузки страницы на долю секунды появляется лента вконтакте, а потом выскакивает окно vk id
Вот код получения кукисов:
service = Service("sel driver/msedgedriver.exe")
option = webdriver.EdgeOptions()
option.add_argument("--disable-blink-features=AutomationControlled")
driver = webdriver.Edge(service=service, options=option)
driver.get("https://vk.com")
number_imp = WebDriverWait(driver, 20).until(ec.presence_of_element_located((By.ID, "index_email")))
number_imp.send_keys(VK_PHONE)
number_imp.submit()
password_imp = WebDriverWait(driver, 20).until(ec.visibility_of_element_located((By.CSS_SELECTOR, "input[name=\"password\"]")))
password_imp.send_keys(VK_PASSWORD)
password_imp.submit()
sleep(10)
with open("vk_cookies1.pkl", "wb") as f:
pickle.dump(driver.get_cookies(), f)
Код использования кукисов:
#создание такого же driver и запрос get к вк.ком
cookies1 = pickle.load(open("vk_cookies1.pkl", "rb"))
for i in cookies1:
driver.add_cookie(i)
driver.refresh()
Ответы (2 шт):
Самый простой способ - войти с профилем браузера. когда selenium запускается, он автоматически создает пустой профиль браузера, в котором всё и выполняется, это сбрасывает все сохраненные пароли, входы, расширения браузера и т.п. (примерно как в инкогнито). Однако вы можете запустить браузер с вашим стандартным профилем (как будто вы сами запустили браузер). Тогда все ваши пароли и входы будут работать и в selenium. То есть если вы вошли в VK, то в selenium VK тоже должен быть открыт.
вот пример настройки такого поведения с браузером opera из одного моего старого проекта:
OPERA_EXE_URL = r'/snap/opera/108/usr/lib/x86_64-linux-gnu/opera/opera'
BROWSER_PROFILE = r"/home/artur/snap/opera/108/.config/opera"
# Если на винде (вставляем свое)
# OPERA_EXE_URL = r'C:\Users\artur1214\AppData\Local\Programs\Opera
# GX\71.0.3770.287\opera.exe'
# BROWSER_PROFILE = r'C:\Users\artur1214\AppData\Roaming\Opera Software\Opera GX Stable'
options = webdriver.ChromeOptions()
options.binary_location = OPERA_EXE_URL
options.add_argument('user-data-dir=' + BROWSER_PROFILE)
# На линуксе
driver = webdriver.Opera(
executable_path=r"/home/artur/Desktop/bot/operadriver/operadriver",
options=options)
# На windows
# driver = webdriver.Opera(executable_path=r"C:\operadriver\operadriver.exe",
# options=options)
driver.get('https://vk.com')
driver.maximize_window()
Как получить информацию о местоположении профиля?
В Edge (судя по всему, вы используете его), это можно сделать на странице версии edge://version/:

В опере это делается на странице chrome://about/

В остальных браузерах похожим образом, точную информацию вам подскажет гугл.
Скорее всего никак, потому что у Вк нет определённых куки, они каждый раз меняются. Попробуйте через Профили
