Туториалы по обходу капчи

Как обойти reCAPTCHA v2 callback

Как обойти reCAPTCHA v2 callback

Вы разрабатываете парсер или автоматизируете тесты, но сталкиваетесь с reCAPTCHA? Эта статья покажет, как программно извлекать ключевые параметры капчи (sitekey, version, callback) со страницы и использовать их для обхода защиты через API-сервисы. Вы научитесь запускать готовый скрипт в консоли браузера, отправлять задачи на решение и корректно встраивать токен обратно в форму.


Быстрый старт

  1. Откройте страницу с reCAPTCHA в браузере → F12 → вкладка Console
  2. Вставьте код функции findRecaptchaClients() из GitHub Gist
  3. Выполните findRecaptchaClients() и скопируйте sitekey, version, pageurl
  4. Отправьте задачу в сервис решения капчи через API
  5. Получите токен и подставьте его в поле #g-recaptcha-response или передайте с помощью callback функции.

Видео-руководство

Предпочитаете учиться наглядно? Наш видео-туториал охватывает всё, что есть в этой статье, с живой демонстрацией:

Смотреть полное видео-руководство



Что внутри видео:

  • Демонстрация в реальном времени: Смотрите весь рабочий процесс от начала до конца на живой тестовой странице
  • Работа с консолью: Точно увидите, как вставить и запустить findRecaptchaClients() без ошибок
  • Извлечение параметров: Научитесь читать JSON-вывод и определять, какие значения важны
  • Интеграция с API: Увидите, как составить API-запрос с извлечёнными параметрами
  • Внедрение токена: Визуальная демонстрация внедрения токена и вызова callback функции
  • Типичные ошибки: Увидите распространённые ошибки и способы их избежания в реальном времени

Длительность видео: ~1 минута
Сложность: Подходит для начинающих — предварительный опыт не требуется

💡 Совет: Сначала посмотрите видео, чтобы получить общее представление, затем используйте эту статью как справочник при внедрении на своём проекте.


Подробная инструкция

🔹 Шаг 1: Подготовка и открытие консоли

  • Загрузите целевую страницу в Chrome/Firefox
  • Убедитесь, что виджет reCAPTCHA полностью отрисовался (иногда требуется скролл или клик)
  • Откройте DevTools: F12 или Ctrl+Shift+I → вкладка Console

🔹 Шаг 2: Запуск скрипта findRecaptchaClients

  • Скопируйте код функции из официального гиста
  • Вставьте в консоль и нажмите Enter
  • Выполните команду:
    javascript Copy
    findRecaptchaClients()

🔹 Шаг 3: Анализ результата и извлечение параметров

Скрипт вернёт массив объектов. Пример:

json Copy
[
  {
    "id": "0",
    "version": "V2",
    "sitekey": "6LcTmlolAAAAAKcDAZQE0o-1rBJ4R2xz...",
    "callback": "___grecaptcha_cfg.clients['0']['C']['C']['callback']",
    "pageurl": "https://example.com/login"
  }
]

Что копировать:

  • sitekey — уникальный ключ сайта
  • version — V2 (checkbox) или V3 (невидимая)
  • pageurl — точный URL страницы (важен для валидации)
  • callback — опционально, если есть явная функция обработки

🔹 Шаг 4: Отправка задачи в сервис

Пример на Python для reCAPTCHA v2:

python Copy
import requests, time

API_KEY = 'ваш_ключ'
response = requests.post('https://api.rucaptcha.com/createTask', json={
    'clientKey': API_KEY,
    'task': {
        'type': 'RecaptchaV2TaskProxyless',
        'websiteURL': 'https://example.com/login',
        'websiteKey': '6LcTmlolAAAAAKcDAZQE0o-1rBJ4R2xz...'
    }
})
task_id = response.json()['taskId']

# Ожидание решения
while True:
    res = requests.post('https://api.rucaptcha.com/getTaskResult', json={
        'clientKey': API_KEY, 'taskId': task_id
    }).json()
    if res['status'] == 'ready':
        token = res['solution']['gRecaptchaResponse']
        break
    time.sleep(5)

🔹 Шаг 5: Внедрение токена обратно на страницу

python Copy
# Подстановка токена в скрытое поле
driver.execute_script(
    f"document.getElementById('g-recaptcha-response').value = '{token}';"
)
# Вызов callback, если он есть
if callback:
    driver.execute_script(f"{callback}('{token}')")
# ИЛИ просто отправьте форму, если callback отсутствует

Сравнение решений

Метод Плюсы Минусы Когда использовать
Ручной поиск в HTML Не требует скриптов Ненадёжно, параметры скрыты Только для простых случаев
Скрипт findRecaptchaClients Автоматически находит все капчи на странице, извлекает callback Требует запуска в консоли Основной рекомендуемый способ
Расширения браузера Удобный UI Могут устаревать, ограниченный функционал Для разовых задач
Headless-скрапинг с Puppeteer/Playwright Полная автоматизация Сложнее в настройке, требует ресурсов Для продакшен-парсеров

Ошибки и отладка

Ошибка Вероятная причина Решение
Скрипт возвращает [] Капча не загрузилась / динамическая подгрузка Дождитесь появления виджета, добавьте setTimeout или триггер-событие
callback is not a function Callback внутри iframe / не экспортирован глобально Переключитесь на iframe: driver.switch_to.frame(...) перед выполнением
Токен отклоняется сайтом Несовпадение pageurl, истёк срок токена Проверьте точность URL (включая / в конце), используйте токен сразу
Повторные запросы блокируются Сайт детектирует аномальную активность Добавьте задержки, используйте прокси, ротируйте User-Agent

Совет для динамических капч:
Запускайте findRecaptchaClients() непосредственно перед каждым запросом — не кэшируйте sitekey надолго.


FAQ

Q: А если на странице несколько капч?
A: Скрипт вернёт массив — выберите нужный объект по pageurl или визуальному расположению.

Q: Можно ли использовать этот метод для hCaptcha или Cloudflare?
A: Нет, скрипт работает только с reCAPTCHA. Для других защит нужны отдельные решения.

Q: Как проверить, что токен валидный, до отправки формы?
A: Отправьте его на верификацию через Google Site Verify API (требуется secret-ключ сайта).

Q: Что делать, если сайт использует Enterprise-версию reCAPTCHA?
A: Принцип тот же, но может потребоваться дополнительная эмуляция поведенческих сигналов.

Q: Безопасно ли хранить API-ключ в коде?
A: Нет. Используйте переменные окружения или секреты вашего CI/CD.


Итоги

Вы научились:

  • Находить sitekey, version, callback через консоль браузера
  • Отправлять задачи в сервис решения капч
  • Корректно встраивать токен в страницу для обхода защиты

Что делать дальше:

  1. Протестируйте скрипт на вашей целевой странице
  2. Интегрируйте пример кода в ваш парсер/тест
  3. Настройте обработку ошибок и логирование
  4. Для продакшена добавьте ротацию прокси и задержки

Полезные ресурсы:

Нужна помощь?
Напишите в поддержку сервиса — команда отвечает быстро и поможет с интеграцией.

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