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

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

Как обойти Google reCAPTCHA v3

Катя Пушкаренва

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

Обход reCAPTCHA v3: Способы для автоматеческого решения  и обхода

Если reCAPTCHA v2 заставляла пользователей искать светофоры и гидранты, то reCAPTCHA v3 действует скрытно. Она не прерывает работу пользователя, а анализирует его поведение на сайте и присваивает рейтинг доверия — Trust Score (от 0.0 до 1.0).

Главная проблема: "Почему меня блокируют с валидным токеном?"

При парсинге сайтов с v3 часто возникает ситуация: вы получили токен от решателя (солвера), но сайт всё равно блокирует доступ.
Причина: Ваш Score оказался слишком низким (обычно 0.1 или 0.3), и сервер считает вас ботом.

В отличие от v2, здесь решение капчи — это не просто "правильный ответ", а доказательство "человечности" всего вашего запроса.

Почему скрипт получает Score 0.1?

Google анализирует три критических уровня данных:

  1. Сетевые отпечатки (TLS Fingerprinting)
    Это самая частая причина провала в 2025 году. Стандартные библиотеки (например, Python requests) имеют специфический порядок шифров при SSL-рукопожатии (JA3 fingerprint). Google видит это и помечает запрос как автоматизированный, даже если сам токен валиден.
  2. Репутация IP-адреса
    IP-адреса дата-центров (AWS, DigitalOcean, Hetzner) по умолчанию имеют низкий траст. Запросы с них часто блокируются автоматически.
  3. Поведенческие факторы и Action
    Отсутствие движений мыши, неестественные тайминги и неверный параметр action гарантированно снижают рейтинг.

Подготовка инструментов

Чтобы Google принял нас за человека, нам понадобятся инструменты, имитирующие реальный браузер, и качественные прокси. Мы будем использовать curl_cffi для подделки TLS-отпечатков на уровне запросов и seleniumbase для браузерной автоматизации.

Установка библиотек:

bash Copy
pip install 2captcha-python curl_cffi seleniumbase

Способ 1: Обход на уровне запросов (Python + API)

Этот метод быстрее и потребляет меньше ресурсов, так как не требует запуска браузера. Главный секрет здесь — использование библиотеки, которая умеет притворяться Chrome или Safari на сетевом уровне.

Шаг 1: Получение токена через 2Captcha

Важно: Критически важно передать правильный параметр action. В v3 токены привязаны к конкретному действию (например, login, submit, verify). Если вы пришлете токен с action homepage на страницу входа, Score упадет.

Как найти action? Откройте консоль браузера (F12) на целевом сайте и поищите grecaptcha.execute. Значение будет внутри скобок, например: {action: 'login'}.

python Copy
import sys
import os
from twocaptcha import TwoCaptcha

# Инициализация солвера
solver = TwoCaptcha('ВАШ_API_KEY')

try:
    print("Отправляем задачу воркеру...")
    result = solver.recaptcha(
        sitekey='6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI', # Ищите data-sitekey в HTML
        url='[https://example.com/login](https://example.com/login)',
        version='v3',
        action='login',   # Обязательно проверьте это значение на сайте!
        min_score=0.3     # Требуем от воркера минимальный рейтинг
    )
    
    token = result['code']
    print(f"Токен получен: {token[:20]}...")

except Exception as e:
    sys.exit(e)

Шаг 2: Отправка токена на сайт (TLS Masquerading)

Теперь отправляем POST-запрос с полученным токеном, маскируясь под браузер Chrome 110 с помощью curl_cffi. Обычный requests здесь, скорее всего, провалится.

python Copy
from curl_cffi import requests

# URL, куда отправляется форма (endpoint, а не сама страница с капчей)
target_url = "[https://example.com/api/login](https://example.com/api/login)"

headers = {
    # User-Agent должен совпадать с тем, что использовал воркер (желательно)
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...",
    "Referer": "[https://example.com/login](https://example.com/login)"
}

data = {
    "username": "user",
    "password": "password",
    "g-recaptcha-response": token  # Вставляем токен
}

# Параметр impersonate="chrome110" подменяет TLS-отпечаток
response = requests.post(
    target_url, 
    data=data, 
    headers=headers, 
    impersonate="chrome110"
)

if response.status_code == 200:
    print("Успешный вход!")
else:
    print("Ошибка или низкий Score.")

Способ 2: Браузерная автоматизация (SeleniumBase)

Обычный Selenium WebDriver легко детектируется антифрод-системами (параметр navigator.webdriver = true выдает бота с головой).

Лучше использовать SeleniumBase в режиме UC Mode (Undetected Chromedriver). Он автоматически патчит драйвер, скрывая признаки автоматизации, что позволяет проходить проверки Score.

python Copy
from seleniumbase import SB
from twocaptcha import TwoCaptcha

api_key = "ВАШ_API_KEY"
solver = TwoCaptcha(api_key)

# Запускаем браузер в режиме UC (Undetected)
with SB(uc=True) as sb:
    sb.open("[https://example.com/login](https://example.com/login)")
    
    # 1. Решаем капчу параллельно загрузке страницы
    print("Решаем капчу...")
    result = solver.recaptcha(
        sitekey='6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI',
        url=sb.get_current_url(),
        version='v3',
        action='login'
    )
    token = result['code']
    
    # 2. Внедряем токен через JavaScript
    # В v3 токен обычно лежит в скрытом input или передается в callback
    sb.execute_script(f"""
        document.getElementById('g-recaptcha-response').value = '{token}';
    """)
    
    # Иногда нужно вызвать callback функцию сайта вручную (ищите data-callback)
    # sb.execute_script(f"loginCallback('{token}')")
    
    sb.click("#login-button") 
    print("Форма отправлена")

Чек-лист: Если Score всё равно низкий

Если вы получаете токен, но сайт вас блокирует, проблема почти всегда в окружении. Проверьте эти три пункта:

  • 1. Качество прокси
    Используйте Резидентные прокси (Residential Proxies). IP-адреса дата-центров получают низкий Score автоматически.

    Совет: В API 2Captcha можно передать параметры вашего прокси (proxy, proxytype). Тогда воркер будет решать капчу через тот же IP, с которого вы пойдете на сайт. Это значительно повышает доверие Google.

  • 2. Совпадение User-Agent
    Если воркер решал задачу на Windows/Chrome, а вы отправляете токен с заголовком Linux/Firefox — это красный флаг. Используйте User-Agent, который возвращает API 2Captcha вместе с токеном, либо задайте жесткий User-Agent при создании задачи.

  • 3. Google Testing Keys
    Чтобы не тратить баланс при отладке скрипта, используйте официальные тестовые ключи Google. Капча будет работать, но всегда возвращать высокий Score.

    Тип ключа Значение
    Site key 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI
    Secret key 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe

    Важно: Не забудьте вернуть реальный ключ сайта перед запуском в продакшн.

SDK

У 2Captcha есть SDK практически для языков прогарммирования. В документации API библиотеки для Java, C#, Go, PHP и даже Node.js. Логика при этом остаётся точно такой же: отправить SiteKey → получить токен → вставить токен.

Заключение

Обход reCAPTCHA v3 — это битва за репутацию. Использование API 2Captcha решает главную задачу: вы получаете токен от реального человека с хорошей историей. Вам остается лишь грамотно доставить этот токен, используя curl_cffi или SeleniumBase и качественные прокси, чтобы не вызвать подозрений на этапе отправки формы.