Короткий ответ — да, обычно можно. Как именно — зависит от того, как multiqr отдаёт ссылку на СБП: через HTTP‑редирект (Location) или «динамически» через JavaScript/клик. Ниже — проверенные способы и примеры.
1) Если это обычный HTTP(3xx)‑редирект
- Посмотреть заголовок Location:
- curl -s -D - -o /dev/null 'https://multiqr.ru/ВАШ_КОД' | grep -i '^Location:'
- или получить конечный URL (с переходом по редиректам): curl -s -L -o /dev/null -w '%{url_effective}\n' 'https://multiqr.ru/ВАШ_КОД'
Часто это достаточно — вы сразу увидите URL, на который редиректит сервер (возможно это ссылка NSPK/СБП).
2) Если ссылка формируется/редиректится через JS или после клика (чаще всего)
- Открыть страницу в браузере и посмотреть исходник / DevTools:
- View source → поиск по "sbp", "nspk", "sbp://" или по части ожидаемой ссылки.
- DevTools → Network → нажать на кнопку «СБП» и в списке запросов найти переход/intent/параметр со ссылкой.
Это самый простой ручной способ.
3) Автоматически (если надо парсить массово)
a) Если ссылка в HTML/JSON на странице — обычный парсер:
- curl -s 'https://multiqr.ru/ВАШ_КОД' | grep -oP 'https?://[^"'\'' ]*sbp[^"'\'' ]*'
- Или извлечь JSON из <script> и распарсить jq / python json.
b) Если ссылка генерируется JS/требуется клик — использовать headless browser (Puppeteer/Playwright), перехватывать сетевые запросы или получать href после клика:
Пример на Playwright (Python):
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page()
page.on("request", lambda req: print("REQ", req.url))
page.goto("https://multiqr.ru/ВАШ_КОД")
page.click("text=СБП") # или точный селектор кнопки
browser.close()
Пример на Puppeteer (Node.js):
const puppeteer = require('puppeteer');
(async () => {
const b = await puppeteer.launch();
const p = await b.newPage();
p.on('request', r => console.log('REQ', r.url()));
await p.goto('https://multiqr.ru/ВАШ_КОД');
await p.click('selector_кнопки_СБП');
await b.close();
})();
- В этих скриптах вы увидите в логах URL, на который браузер идёт/который открывается — это и есть прямая ссылка на СБП/НСПК.
4) Утилиты для отладки / командная строка
- Использовать headless Chrome + DevTools Protocol (chrome-remote-interface) или cURL + pupeteer при автоматизации.
- Можно также воспользоваться браузерной функцией «Copy link address»/«Copy as cURL» в DevTools → Network.
5) Что ещё учесть
- Иногда multiqr показывает промежуточную страницу с кнопкой «Открыть в банке» и формирует URI схемы sbp://, который открывается приложением банка. Такие схемы видны в href кнопки или в сетевых запросах (intent/redirect). Если это sbp:// — браузер может не следовать автоматически, но вы всё равно сможете скопировать строку.
- Может потребоваться корректный User‑Agent или cookies/рефёрер, если сервер возвращает разные данные для мобайла/десктопа.
- Автоматизация кликов целесообразна, если нужно массово извлекать ссылки. Для единичной проверки проще DevTools.
Если хотите — пришлите конкретную multiqr‑ссылку (или пример HTML) — покажу точную команду/скрипт, как получить ссылку НСПК для неё.