Уважаемые участники форума!
Я сталкиваюсь с задачей получения cookies после авторизации на сайте банка, используя Python. Моя цель — автоматизировать процесс входа и получить необходимые cookies для дальнейших действий.
Согласно документации. Аутентификация проходит на странице Банка, которая вызывается по ссылке, содержащей адрес возврата. SID должен содержаться в cookie ответа в поле auth_sid при успешной аутентификации. Пример SID: 0034696077-bae38d. Так как аутентификация проходит на странице Банка, ее требуется вызывать из ПО которое будет использовать API.
Я попытался использовать библиотеку requests для отправки POST-запроса на страницу входа, предоставив учетные данные, но столкнулся с некоторыми трудностями.
Понял что нужно использовать программное открытие браузера. Пробую selenium. Но нужного cookies в списке не приходит.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
import time
# Настройка опций для запуска Chrome в headless режиме
chrome_options = Options()
chrome_options.add_argument("--headless") # включение headless режима
chrome_options.add_argument("--no-sandbox") # режим без песочницы
chrome_options.add_argument("--disable-dev-shm-usage") # отключить использование общей памяти
chrome_options.add_argument("--disable-gpu")
# Инициализация драйвера Selenium с опциями
driver = webdriver.Chrome(options=chrome_options)
# Открыть страницу входа
driver.get("https://gg.Login?auth_return_url=https://gg.by:8243")
# Найти элементы ввода для логина и пароля
login_input = driver.find_element(By.NAME, 'sso_p_Login')
password_input = driver.find_element(By.NAME, 'sso_p_Password')
# Ввести учетные данные
login_input.send_keys('19293924')
password_input.send_keys('ssdvccc22fr')
# Отправить форму
password_input.send_keys(Keys.RETURN)
# Дать время для обработки ответа
time.sleep(5)
# Из них можно будет достать SID
cookies = driver.get_cookies()
print(cookies) # Выведет список cookies
auth_sid = next((cookie['value'] for cookie in cookies if cookie['name'] == 'auth_sid'), None)
print(auth_sid)
# Закрыть браузер
driver.quit()
Единственный способ, как получается достать кук, когда заходишь и логинишься по ссылке в браузере, постоянно смотришь в режиме разработчика приложения -> cookies и снимаешь на камеру телефона..., кук проскакивает на секунду. Потом можно его достать из стоп кадра и работать сессию. Но это не совсем то что нужно для работы с API...
Возможно, кто-то из вас сталкивался с подобной задачей и может поделиться опытом или предоставить пример кода для успешной авторизации на сайте банка с использованием Python. Какие библиотеки или подходы лучше всего использовать? Как достать необходимый кук?
Заранее благодарен за любую поддержку и советы!