Эта статья была полезной?
Как обойти Google reCAPTCHA v3
Технический специалист
Если reCAPTCHA v2 заставляла пользователей искать светофоры и гидранты, то reCAPTCHA v3 действует скрытно. Она не прерывает работу пользователя, а анализирует его поведение на сайте и присваивает рейтинг доверия — Trust Score (от 0.0 до 1.0).
Главная проблема: "Почему меня блокируют с валидным токеном?"
При парсинге сайтов с v3 часто возникает ситуация: вы получили токен от решателя (солвера), но сайт всё равно блокирует доступ.
Причина: Ваш Score оказался слишком низким (обычно 0.1 или 0.3), и сервер считает вас ботом.
В отличие от v2, здесь решение капчи — это не просто "правильный ответ", а доказательство "человечности" всего вашего запроса.
Почему скрипт получает Score 0.1?
Google анализирует три критических уровня данных:
- Сетевые отпечатки (TLS Fingerprinting)
Это самая частая причина провала в 2025 году. Стандартные библиотеки (например, Pythonrequests) имеют специфический порядок шифров при SSL-рукопожатии (JA3 fingerprint). Google видит это и помечает запрос как автоматизированный, даже если сам токен валиден. - Репутация IP-адреса
IP-адреса дата-центров (AWS, DigitalOcean, Hetzner) по умолчанию имеют низкий траст. Запросы с них часто блокируются автоматически. - Поведенческие факторы и Action
Отсутствие движений мыши, неестественные тайминги и неверный параметрactionгарантированно снижают рейтинг.
Подготовка инструментов
Чтобы Google принял нас за человека, нам понадобятся инструменты, имитирующие реальный браузер, и качественные прокси. Мы будем использовать curl_cffi для подделки TLS-отпечатков на уровне запросов и seleniumbase для браузерной автоматизации.
Установка библиотек:
bash
pip install 2captcha-python curl_cffi seleniumbase
Способ 1: Обход на уровне запросов (Python + API)
Этот метод быстрее и потребляет меньше ресурсов, так как не требует запуска браузера. Главный секрет здесь — использование библиотеки, которая умеет притворяться Chrome или Safari на сетевом уровне.
Шаг 1: Получение токена через RuCaptcha
Важно: Критически важно передать правильный параметр action. В v3 токены привязаны к конкретному действию (например, login, submit, verify). Если вы пришлете токен с action homepage на страницу входа, Score упадет.
Как найти action? Откройте консоль браузера (F12) на целевом сайте и поищите
grecaptcha.execute. Значение будет внутри скобок, например:{action: 'login'}.
python
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
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
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 RuCaptcha можно передать параметры вашего прокси (
proxy,proxytype). Тогда воркер будет решать капчу через тот же IP, с которого вы пойдете на сайт. Это значительно повышает доверие Google. -
2. Совпадение User-Agent
Если воркер решал задачу на Windows/Chrome, а вы отправляете токен с заголовком Linux/Firefox — это красный флаг. Используйте User-Agent, который возвращает API RuCaptcha вместе с токеном, либо задайте жесткий User-Agent при создании задачи. -
3. Google Testing Keys
Чтобы не тратить баланс при отладке скрипта, используйте официальные тестовые ключи Google. Капча будет работать, но всегда возвращать высокий Score.Тип ключа Значение Site key 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhISecret key 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWeВажно: Не забудьте вернуть реальный ключ сайта перед запуском в продакшн.
SDK
У RuCaptcha есть SDK практически для языков прогарммирования. В документации API библиотеки для Java, C#, Go, PHP и даже Node.js. Логика при этом остаётся точно такой же: отправить SiteKey → получить токен → вставить токен.
Заключение
Обход reCAPTCHA v3 — это битва за репутацию. Использование API RuCaptcha решает главную задачу: вы получаете токен от реального человека с хорошей историей. Вам остается лишь грамотно доставить этот токен, используя curl_cffi или SeleniumBase и качественные прокси, чтобы не вызвать подозрений на этапе отправки формы.