Задать вопрос
Ответы пользователя по тегу JavaScript
  • Как получить bitrix_sessid в js без подключения js-библиотеки Bitrix?

    @andry36
    на ум приходит несколько подходов:

    Парсинг HTML-страницы
    Bitrix обычно добавляет актуальный bitrix_sessid в скрытый input, либо в мета-тег. Например:

    <meta name="bitrix_sessid" content="abcd1234">

    Или:
    <input type="hidden" name="sessid" id="sessid" value="abcd1234">


    и в js получать:

    // Если используется мета-тег
    const bitrixSessid = document.querySelector('meta[name="bitrix_sessid"]').content;
    // Если используется скрытый input
    const bitrixSessid = document.querySelector('input[name="sessid"]').value;


    Если сервер настроен так, что сессия передаётся в cookies, возможно, bitrix_sessid можно извлечь оттуда:

    const cookies = document.cookie.split('; ').reduce((acc, cookie) => {
      const [key, value] = cookie.split('=');
      acc[key] = value;
      return acc;
    }, {});
    
    const bitrixSessid = cookies['bitrix_sessid'];


    если prolog_admin_before.php уже подключён, можно встроить передачу bitrix_sessid прямо в JS:

    <script>
      window.bitrixSessid = '<?= bitrix_sessid() ?>';
    </script>


    И потом использовать в JS: console.log(window.bitrixSessid)
    Ответ написан
    2 комментария
  • Как спарсить данные с помощью 2Captcha и SpringBoot?

    @andry36
    Скорее всего сайт не видит, что капча решена. Само простое «вставить токен в #g-recaptcha-response» редко достаточно. Часто нужно действительно вызвать grecaptcha.execute() или повторить тот JS, который сайт вызывается при реальной проверке (например, по клику на «submit»).

    Попробуй понаблюдать в DevTools, что происходит, когда ты вручную разгадываешь капчу: какие сетевые запросы уходят, какие JS-события или функции (onloadCallback, grecaptcha.execute(), onSubmit) вызываются. Затем повтори эти действия в Selenium - не просто пихни токен на страницу, а заставь сайт пройти ровно тот же workflow:
    Переключись в нужный iframe (если нужно),
    Подставь капча-токен,
    Выполни нужные скрипты/клики/сабмиты.
    Если сайт использует серверную проверку, то обязательно должен быть запрос с передачей g-recaptcha-response. Без этого сайт даже не узнает, что капча решена. Проверяй, уходит ли он вообще и с каким телом. Обычно этого хватает, чтобы скрытый телефон начал отображаться.
    Ответ написан