Как обойти reCAPTCHA v2 callback
Вы разрабатываете парсер или автоматизируете тесты, но сталкиваетесь с reCAPTCHA? Эта статья покажет, как программно извлекать ключевые параметры капчи (sitekey, version, callback) со страницы и использовать их для обхода защиты через API-сервисы. Вы научитесь запускать готовый скрипт в консоли браузера, отправлять задачи на решение и корректно встраивать токен обратно в форму.
Быстрый старт
- Откройте страницу с reCAPTCHA в браузере →
F12→ вкладка Console - Вставьте код функции
findRecaptchaClients()из GitHub Gist - Выполните
findRecaptchaClients()и скопируйтеsitekey,version,pageurl - Отправьте задачу в сервис решения капчи через API
- Получите токен и подставьте его в поле
#g-recaptcha-responseили передайте с помощьюcallbackфункции.
Видео-руководство
Предпочитаете учиться наглядно? Наш видео-туториал охватывает всё, что есть в этой статье, с живой демонстрацией:
Смотреть полное видео-руководство
Что внутри видео:
- Демонстрация в реальном времени: Смотрите весь рабочий процесс от начала до конца на живой тестовой странице
- Работа с консолью: Точно увидите, как вставить и запустить
findRecaptchaClients()без ошибок - Извлечение параметров: Научитесь читать JSON-вывод и определять, какие значения важны
- Интеграция с API: Увидите, как составить API-запрос с извлечёнными параметрами
- Внедрение токена: Визуальная демонстрация внедрения токена и вызова
callbackфункции - Типичные ошибки: Увидите распространённые ошибки и способы их избежания в реальном времени
Длительность видео: ~1 минута
Сложность: Подходит для начинающих — предварительный опыт не требуется
💡 Совет: Сначала посмотрите видео, чтобы получить общее представление, затем используйте эту статью как справочник при внедрении на своём проекте.
Подробная инструкция
🔹 Шаг 1: Подготовка и открытие консоли
- Загрузите целевую страницу в Chrome/Firefox
- Убедитесь, что виджет reCAPTCHA полностью отрисовался (иногда требуется скролл или клик)
- Откройте DevTools:
F12илиCtrl+Shift+I→ вкладка Console
🔹 Шаг 2: Запуск скрипта findRecaptchaClients
- Скопируйте код функции из официального гиста
- Вставьте в консоль и нажмите
Enter - Выполните команду:
javascript
findRecaptchaClients()
🔹 Шаг 3: Анализ результата и извлечение параметров
Скрипт вернёт массив объектов. Пример:
json
[
{
"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
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
# Подстановка токена в скрытое поле
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через консоль браузера - Отправлять задачи в сервис решения капч
- Корректно встраивать токен в страницу для обхода защиты
Что делать дальше:
- Протестируйте скрипт на вашей целевой странице
- Интегрируйте пример кода в ваш парсер/тест
- Настройте обработку ошибок и логирование
- Для продакшена добавьте ротацию прокси и задержки
Полезные ресурсы:
- Скрипт findRecaptchaClients на GitHub
- Видео-гайд по настройке
- Документация API
- Примеры кода для Python, JS, C# в нашем блоге
Нужна помощь?
Напишите в поддержку сервиса — команда отвечает быстро и поможет с интеграцией.
Совет напоследок: Всегда проверяйте актуальность параметров при каждом запуске — сайты могут менять реализацию капчи без предупреждения.