Эта статья была полезной?
Какобойти капчу Google reCAPTCHA
Технический специалист
Введение
Этот гид объясняет, как автоматически распознавать и обходить Google reCAPTCHA с помощью RuCaptcha API v2. Мы разберём разные версии капчи, покажем готовые примеры на curl и Python, и поможем интегрировать решение в твой проект.
Что понадобится:
- Аккаунт в RuCaptcha с доступом к API
- Положительный баланс для оплаты решений
- Ключ сайта (sitekey) с целевой страницы
- Postman, curl или Python для тестов
1. Google reCAPTCHA: основы
1.1. Что такое Google reCAPTCHA
Google reCAPTCHA — это сервис для защиты сайтов от спама и ботов. Он различает людей и автоматические скрипты, предлагая задачи, которые легко решает человек, но сложно выполнить боту.
Система предотвращает:
- Веб-скрапинг
- Атаки методом подбора
- Спам через формы
Google reCAPTCHA использует машинное обучение и анализ рисков, постоянно улучшая точность распознавания сложных ботов.
1.2. Виды Google reCAPTCHA
| Версия | Как работает | Когда используется |
|---|---|---|
| reCAPTCHA v2 | Галочка "Я не робот" или выбор изображений | Самая распространённая версия |
| reCAPTCHA v3 | Фоновая оценка от 0 до 1 | Без явного взаимодействия с пользователем |
| Invisible reCAPTCHA | Появляется только при подозрении на бота | Аналог v2, но без галочки по умолчанию |
| Enterprise reCAPTCHA | Премиум-версия для бизнеса | Дополнительная безопасность и поддержка |
1.3. Общий процесс решения
- Найди ключ сайта (sitekey) на целевой странице
- Отправь его в RuCaptcha API v2
- Получи токен с решением
- Вставь токен в форму и отправь
2. Решение reCAPTCHA v2 через API v2
2.1. Отправка задания
Используй endpoint createTask с типом RecaptchaV2TaskProxyless:
bash
curl -X POST "https://api.rucaptcha.com/createTask" \
-H "Content-Type: application/json" \
-d '{
"clientKey": "ВАШ_API_КЛЮЧ",
"task": {
"type": "RecaptchaV2TaskProxyless",
"websiteURL": "https://example.com",
"websiteKey": "КЛЮЧ_САЙТА"
}
}'
2.2. Ответ с taskId
json
{
"errorId": 0,
"taskId": 123456789
}
2.3. Запрос решения
Используй endpoint getTaskResult с полученным taskId:
bash
curl -X POST "https://api.rucaptcha.com/getTaskResult" \
-H "Content-Type: application/json" \
-d '{
"clientKey": "ВАШ_API_КЛЮЧ",
"taskId": 123456789
}'
2.4. Ответ с решением
json
{
"errorId": 0,
"status": "ready",
"solution": {
"gRecaptchaResponse": "03AGdBq25fN2f..."
}
}
Важно: Токен gRecaptchaResponse нужно вставить в скрытое поле формы и отправить.
3. Автоматизация на Python
3.1. Пример скрипта для reCAPTCHA v2
python
import time
import requests
API_KEY = "ВАШ_API_КЛЮЧ"
SITE_KEY = "КЛЮЧ_САЙТА"
PAGE_URL = "https://example.com"
# 1. Отправка задачи в RuCaptcha API v2
create_task_url = "https://api.rucaptcha.com/createTask"
task_payload = {
"clientKey": API_KEY,
"task": {
"type": "RecaptchaV2TaskProxyless",
"websiteURL": PAGE_URL,
"websiteKey": SITE_KEY
}
}
task_response = requests.post(create_task_url, json=task_payload).json()
if task_response["errorId"] != 0:
raise Exception("Ошибка при отправке задачи:", task_response)
task_id = task_response["taskId"]
print("Task ID:", task_id)
# 2. Ожидание решения
time.sleep(20) # Даём системе RuCaptcha время обработать запрос
get_result_url = "https://api.rucaptcha.com/getTaskResult"
for _ in range(10): # Пробуем 10 раз с интервалом в 5 секунд
result_payload = {"clientKey": API_KEY, "taskId": task_id}
result_response = requests.post(get_result_url, json=result_payload).json()
if result_response["status"] == "ready":
captcha_solution = result_response["solution"]["gRecaptchaResponse"]
print("Решение:", captcha_solution)
break
print("Ожидание...")
time.sleep(5)
3.2. Использование токена
Токен, полученный в captcha_solution, нужно вставить в поле g-recaptcha-response и отправить форму.
4. Решение reCAPTCHA v3
4.1. Особенности версии v3
Для reCAPTCHA v3 используется тип задачи RecaptchaV3TaskProxyless. Требуется указать:
- action — действие пользователя
- minScore — минимальный балл (от 0 до 1)
4.2. Запрос на решение reCAPTCHA v3
bash
curl -X POST "https://api.rucaptcha.com/createTask" \
-H "Content-Type: application/json" \
-d '{
"clientKey": "ВАШ_API_КЛЮЧ",
"task": {
"type": "RecaptchaV3TaskProxyless",
"websiteURL": "https://example.com",
"websiteKey": "КЛЮЧ_САЙТА",
"minScore": 0.3,
"pageAction": "login"
}
}'
4.3. Ответ с taskId
json
{
"errorId": 0,
"taskId": 987654321
}
4.4. Запрос решения
bash
curl -X POST "https://api.rucaptcha.com/getTaskResult" \
-H "Content-Type: application/json" \
-d '{
"clientKey": "ВАШ_API_КЛЮЧ",
"taskId": 987654321
}'
4.5. Ответ с решением
json
{
"errorId": 0,
"status": "ready",
"solution": {
"gRecaptchaResponse": "03AGdBq25fN2f..."
}
}
Токен gRecaptchaResponse вставляется в форму аналогично reCAPTCHA v2.
5. Диагностика и отладка
5.1. Частые проблемы
| Проблема | Вероятная причина | Решение |
|---|---|---|
errorId не равен 0 |
Неверный API-ключ или параметры | Проверь clientKey и структуру запроса |
| Долгое ожидание решения | Сложная капча или нагрузка | Увеличь время ожидания между запросами |
| Токен не принимается сайтом | Устарел или неверный sitekey | Получи свежий sitekey с целевой страницы |
5.2. Советы по отладке
- Проверяй, что
websiteURLсоответствует сайту, где находится капча - Убедись, что
websiteKeyскопирован полностью без лишних пробелов - Для reCAPTCHA v3 подбирай
minScoreэкспериментально (0.1–0.9) - Логируй ответы API для анализа ошибок
6. Полезные руководства
- Как найти ключ сайта Google reCAPTCHA
- Распознавание reCAPTCHA: обход с использованием метода сетки
- Как автоматически решить и обойти reCAPTCHA с Puppeteer и Auto Captcha Filler
- Как автоматически решить и обойти reCAPTCHA с Selenium и Auto Captcha Filler
- Как обойти CAPTCHA с помощью JavaScript
7. Чек-лист перед запуском
- Найден и скопирован ключ сайта (sitekey) с целевой страницы
- Определена версия reCAPTCHA (v2 или v3)
- Для v3 указаны параметры
pageActionиminScore - API-ключ верный и на балансе есть средства
- Протестирован запрос через curl или Python
- Реализован опрос статуса с интервалом 5 секунд
- Токен корректно вставляется в форму перед отправкой
8. Дополнительные ресурсы
8.1. Документация
- Документация API V2
- Документация по обходу reCAPTCHA с использованием API V2
- Официальная документация RuCaptcha
8.2. Примеры кода
Примеры кода с использованием API V1 и официальных библиотек расположены на GitHub:
python | javascript | go | ruby | php | java | csharp | c++
Итоги
Автоматизация решения Google reCAPTCHA через RuCaptcha API v2 упрощает работу с защищёнными сайтами. Это особенно полезно для веб-скрапинга, автоматизации и тестирования.
Ключевые моменты:
- Всегда проверяй версию reCAPTCHA перед отправкой запроса
- Для v2 используй
RecaptchaV2TaskProxyless, для v3 —RecaptchaV3TaskProxyless - Тестируй интеграцию через готовые примеры на curl или Python
- Добавляй обработку ошибок и повторные запросы для надёжности
Следуй этому руководству, и обход reCAPTCHA станет предсказуемой частью твоего проекта.