Как извлечь ссылку СБП из QR-кода multiqr.ru
При сканировании QR-кода на новых терминалах Сбера пользователи часто видят промежуточную страницу multiqr.ru, где предлагается выбрать банк или систему быстрых платежей (СБП). После клика на СБП происходит редирект на платёжный шлюз НСПК. Многие хотят получить прямую ссылку на СБП, минуя ручной выбор. В этой статье мы разберём, можно ли автоматически извлечь ссылку СБП из QR-кода, какие инструменты для этого подходят и какие ограничения существуют.
Как работает QR-код на терминалах Сбера
Современные терминалы Сбера генерируют QR-код, который ведёт на сервис multiqr.ru. Этот сервис выступает в роли маршрутизатора: он определяет, какое приложение установлено на устройстве пользователя, и предлагает соответствующий способ оплаты. Если пользователь сканирует QR-код внутри приложения Сбер, система распознаёт ссылку и сразу направляет на оплату через СБП. Однако при сканировании сторонним сканером (например, камерой смартфона или обычным ридером) открывается веб-страница выбора.
Можно ли извлечь прямую ссылку СБП
Технически, ссылка на СБП (НСПК) формируется динамически после выбора банка на странице multiqr.ru. Прямая ссылка не зашита в QR-код в явном виде. Однако существуют способы её получить:
- Парсинг страницы multiqr.ru - после перехода по QR-коду можно проанализировать HTML-код страницы и найти скрытые параметры, которые передаются при клике на СБП. Часто ссылка формируется на основе JavaScript, поэтому потребуется имитация браузера.
- Перехват трафика - используя инструменты вроде Fiddler или Charles Proxy, можно отследить HTTP-запросы, которые отправляются при нажатии на кнопку СБП, и извлечь итоговый URL.
- Библиотеки для работы с QR - стандартные библиотеки (например,
pyzbarилиZXing) только декодируют содержимое QR-кода, то есть получают ссылку на multiqr.ru. Для извлечения конечной ссылки СБП потребуется дополнительный парсинг.
Инструменты и библиотеки для извлечения
Для автоматизации процесса можно использовать следующие подходы:
1. Парсинг с помощью Python
Библиотеки requests и BeautifulSoup позволяют загрузить страницу multiqr.ru и найти в ней элементы, содержащие ссылку на СБП. Однако учтите, что динамические сайты могут требовать выполнения JavaScript, поэтому лучше использовать Selenium или Playwright. Примерный алгоритм:
- Декодировать QR-код (библиотека
pyzbar). - Открыть полученный URL в браузере (Selenium).
- Найти кнопку или элемент с текстом «СБП» и кликнуть.
- Перехватить URL после редиректа.
2. Анализ запросов через сниффер
Если нужно разово получить ссылку, проще использовать прокси-инструменты. Например, включите Charles Proxy на компьютере, настройте его как прокси для смартфона, отсканируйте QR-код и нажмите СБП - в логах появится конечный URL.
Ограничения и юридические аспекты
Важно помнить, что автоматический парсинг сайтов может нарушать условия использования сервиса. Кроме того, ссылки СБП могут быть временными или привязанными к сессии. Для личного использования или тестирования это допустимо, но для массового сбора данных лучше получить официальное разрешение.
Заключение
Извлечь прямую ссылку СБП из QR-кода терминалов Сбера возможно, но это требует дополнительных шагов: парсинга страницы multiqr.ru или перехвата трафика. Готового решения «одной кнопкой» не существует, однако с помощью Python-библиотек (Selenium, requests) или инструментов для отладки сети (Charles) вы сможете получить нужный URL. Помните об ограничениях и используйте эти методы ответственно.