Эта статья была полезной?
Как обойти reCAPTCHA v3
Введение
reCAPTCHA v3 — это не классическая капча с картинками, а система скоринга, которая оценивает поведение пользователя в браузере и возвращает числовое значение (score) от 0.1 до 0.9. В отличие от предыдущих версий, она не требует явного взаимодействия пользователя, но предъявляет строгие требования к качеству токена.
В этом руководстве мы разберём:
- Как определить reCAPTCHA v3 на странице
- Какие параметры необходимы для отправки задачи
- Как правильно настроить
minScoreиaction - Как использовать систему репортов для повышения качества решений
- Пример кода на Python и PHP
Важно: Решение reCAPTCHA v3 — сложная задача, так как она предъявляет строгие требования к значению score. Успех зависит от совокупности факторов: корректных параметров, качества прокси, цифровых отпечатков браузера и поведения сессии.
Как определить reCAPTCHA v3 на странице
| Версия | Признаки |
|---|---|
| reCAPTCHA v2 | Есть чекбокс «Я не робот» |
| reCAPTCHA v2 Invisible | Нет чекбокса, но при отправке формы иногда появляется выбор изображений |
| reCAPTCHA v3 | Нет чекбокса, логотип reCAPTCHA в углу, при отправке формы никогда не появляется выбор картинок |
Быстрая проверка через DevTools
- Откройте консоль разработчика (
F12→ вкладка Network) - Выполните действие, которое триггерит капчу
- Найдите запросы к
google.com/recaptcha/api2/илиrecaptcha.net/recaptcha/api2/ - Если есть запрос к
reload, но нет запроса кuserverify— это reCAPTCHA v3
Необходимые параметры для решения
Основные поля задачи RecaptchaV3TaskProxyless
| Свойство | Тип | Обязателен | Описание |
|---|---|---|---|
| type | String | Да | RecaptchaV3TaskProxyless |
| websiteURL | String | Да | Полный URL страницы с капчей |
| websiteKey | String | Да | Sitekey из атрибута data-sitekey или параметра k в запросах |
| minScore | Float | Да | Требуемый score: от 0.1 до 0.9 |
| pageAction | String | Нет | Значение action, если используется на сайте |
| isEnterprise | Boolean | Нет | true для Enterprise-версии (enterprise.js) |
| apiDomain | String | Нет | Домен загрузки: google.com (по умолчанию) или recaptcha.net |
Как найти websiteKey и action
websiteKey:
- Откройте страницу с капчей
- Найдите iframe с
src="https://www.google.com/recaptcha/api2/anchor" - В параметре
kэтого URL находится искомый sitekey
action (если используется):
- В консоли браузера выполните поиск по
grecaptcha.execute - Значение параметра
actionв вызове функции нужно передать в запросе
javascript
// Пример вызова на странице
grecaptcha.execute('6LfB5_IbAAAA...', { action: 'login' });
// ↑ значение 'login' — это и есть action
Пошаговая инструкция: отправка задачи через API
Шаг 1: Создание задачи
Эндпоинт: https://api.2captcha.com/createTask
Метод: POST
Content-Type: application/json
json
{
"clientKey": "ВАШ_API_КЛЮЧ",
"task": {
"type": "RecaptchaV3TaskProxyless",
"websiteURL": "https://example.com/login",
"websiteKey": "6LfB5_IbAAAAAMCtsjEHEHKqcB9iQocwwxTiihJu",
"minScore": 0.9,
"pageAction": "login",
"isEnterprise": false
}
}
Шаг 2: Получение taskId
В ответе вы получите:
json
{
"errorId": 0,
"taskId": "1234567890"
}
Шаг 3: Опрос результата
Эндпоинт: https://api.2captcha.com/getTaskResult
json
{
"clientKey": "ВАШ_API_КЛЮЧ",
"taskId": "1234567890"
}
Успешный ответ:
json
{
"errorId": 0,
"status": "ready",
"solution": {
"gRecaptchaResponse": "03AGdBq269xwqd...5pZ_2DMHqUjg",
"token": "03AGdBq269xwqd...5pZ_2DMHqUjg"
}
}
Шаг 4: Использование токена
Добавьте полученный токен в поле формы g-recaptcha-response или передайте в соответствующий параметр вашего POST-запроса к целевому сайту.
Срок жизни токена: 120 секунд с момента генерации. Используйте его немедленно.
Критически важные рекомендации по score и action
Проблема чувствительности к score
reCAPTCHA v3 очень чувствительна к значению score. Даже токен с заявленным minScore: 0.9 может быть отклонён, если сайт применяет дополнительные проверки.
Что делать:
-
Отправляйте множественные запросы с разными значениями
minScore:Попробуйте последовательно: 0.3 → 0.7 → 0.9 -
Экспериментируйте с параметром
action:- Попробуйте добавить
action, если он не указан - Попробуйте убрать
action, если он есть - Убедитесь, что значение
actionточно совпадает с тем, что ожидает сайт
- Попробуйте добавить
-
Тестируйте на демо-странице перед интеграцией:
https://rucaptcha.com/demo/recaptcha-v3
Важно: Наши воркеры решают большое количество капч ежедневно, что может влиять на качество получаемого score. Некоторые сайты предъявляют экстремально высокие требования, и прохождение может быть невозможно технически.
Система репортов: как сэкономить и улучшить качество
Использование системы обратной связи — обязательный этап для стабильной работы с reCAPTCHA v3. Это позволяет:
- Улучшать качество распознования
- Получать возврат средств за неудачные решения
Когда отправлять reportCorrect
Токен был принят целевым сайтом (форма отправилась успешно, нет ошибки капчи)
Эндпоинт: https://api.2captcha.com/reportCorrect
json
{
"clientKey": "ВАШ_API_КЛЮЧ",
"taskId": 1234567890
}
Когда отправлять reportIncorrect
Токен был отклонён сайтом (ошибка «Неверная капча», блокировка)
Эндпоинт: https://api.2captcha.com/reportIncorrect
json
{
"clientKey": "ВАШ_API_КЛЮЧ",
"taskId": 1234567890
}
Примеры кода
Python (с использованием официальной библиотеки)
python
# pip install 2captcha-python
from twocaptcha import TwoCaptcha
solver = TwoCaptcha('ВАШ_API_КЛЮЧ')
try:
result = solver.recaptcha(
sitekey='6LfB5_IbAAAAAMCtsjEHEHKqcB9iQocwwxTiihJu',
url='https://example.com/login',
version='v3',
action='login',
score=0.9
)
token = result['code']
print(f'Токен: {token}')
# Отправка репорта после использования
# solver.report_correct(task_id) или solver.report_incorrect(task_id)
except Exception as e:
print(f'Ошибка: {e}')
PHP
php
<?php
require __DIR__ . '/vendor/autoload.php';
$solver = new TwoCaptcha\TwoCaptcha('ВАШ_API_КЛЮЧ');
try {
$result = $solver->recaptcha([
'sitekey' => '6LfB5_IbAAAAAMCtsjEHEHKqcB9iQocwwxTiihJu',
'url' => 'https://example.com/login',
'version' => 'v3',
'action' => 'login',
'score' => 0.3
]);
echo "Токен: " . $result->code;
} catch (Exception $e) {
echo "Ошибка: " . $e->getMessage();
}
?>
Частые ошибки и их решения
| Ошибка | Причина | Решение |
|---|---|---|
| ERROR_WRONG_USER_KEY | Неверный API-ключ | Проверьте ключ в личном кабинете |
| ERROR_ZERO_BALANCE | Недостаточно средств | Пополните баланс аккаунта |
| ERROR_CAPTCHA_UNSOLVABLE | Капча не была решена | Попробуйте другой minScore, проверьте action, смените прокси |
| Токен не принимается сайтом | Несоответствие action или userAgent |
Убедитесь, что параметры точно совпадают с реальным браузером |
Рекомендации по частоте запросов
- Опрос
getTaskResult: каждые 5-10 секунд (не чаще!) - Между созданием новых задач: делайте паузу 2-5 секунд
- При получении 3+ ошибок подряд: смените прокси или сделайте паузу 15-30 минут
Полезные ссылки
- Демо-страница reCAPTCHA v3
- Полная документация API
- Библиотеки для разработчиков (GitHub)
- Метод reportCorrect
- Метод reportIncorrect
Заключение
Обход reCAPTCHA v3 — это не разовая настройка, а итеративный процесс оптимизации. Ключ к успеху:
- Точное определение всех параметров (
sitekey,action,minScore) - Эксперименты с разными значениями score и action
- Обязательное использование системы репортов
- Мониторинг качества решений и быстрая адаптация под изменения сайта
Мы надеемся, что эти рекомендации помогут вам улучшить результаты. Если вы столкнулись со сложностями — протестируйте решение на демо-странице, проверьте логи запросов и не стесняйтесь обращаться в поддержку с примерами запросов и ответов.