Looking for international version of our service? Go to 2captcha.com

Логотип «RuCaptcha»Перейти на главную страницу
Туториалы по обходу капчи

Эта статья была полезной?

Какобойти капчу Google reCAPTCHA

Катя Пушкарёва

Технический специалист

Как распознать, решить обойти капчу 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. Общий процесс решения

  1. Найди ключ сайта (sitekey) на целевой странице
  2. Отправь его в RuCaptcha API v2
  3. Получи токен с решением
  4. Вставь токен в форму и отправь

2. Решение reCAPTCHA v2 через API v2

2.1. Отправка задания

Используй endpoint createTask с типом RecaptchaV2TaskProxyless:

bash Copy
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 Copy
{
  "errorId": 0,
  "taskId": 123456789
}

2.3. Запрос решения

Используй endpoint getTaskResult с полученным taskId:

bash Copy
curl -X POST "https://api.rucaptcha.com/getTaskResult" \
     -H "Content-Type: application/json" \
     -d '{
           "clientKey": "ВАШ_API_КЛЮЧ",
           "taskId": 123456789
         }'

2.4. Ответ с решением

json Copy
{
  "errorId": 0,
  "status": "ready",
  "solution": {
      "gRecaptchaResponse": "03AGdBq25fN2f..."
  }
}

Важно: Токен gRecaptchaResponse нужно вставить в скрытое поле формы и отправить.


3. Автоматизация на Python

3.1. Пример скрипта для reCAPTCHA v2

python Copy
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 Copy
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 Copy
{
  "errorId": 0,
  "taskId": 987654321
}

4.4. Запрос решения

bash Copy
curl -X POST "https://api.rucaptcha.com/getTaskResult" \
     -H "Content-Type: application/json" \
     -d '{
           "clientKey": "ВАШ_API_КЛЮЧ",
           "taskId": 987654321
         }'

4.5. Ответ с решением

json Copy
{
  "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. Полезные руководства


7. Чек-лист перед запуском

  • Найден и скопирован ключ сайта (sitekey) с целевой страницы
  • Определена версия reCAPTCHA (v2 или v3)
  • Для v3 указаны параметры pageAction и minScore
  • API-ключ верный и на балансе есть средства
  • Протестирован запрос через curl или Python
  • Реализован опрос статуса с интервалом 5 секунд
  • Токен корректно вставляется в форму перед отправкой

8. Дополнительные ресурсы

8.1. Документация

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 станет предсказуемой частью твоего проекта.