Нужно ли передавать язык сайта в CaptchaAI, чтобы решить reCAPTCHA или Turnstile? Нет — интерфейс виджета может быть на любом языке, результат не изменится. А вот для CAPTCHA-изображений язык критичен: неверный параметр language вернёт набор символов, который не совпадёт с картинкой, и токен не пройдёт проверку на сайте. Ниже — что именно локализуется в каждом типе CAPTCHA и как настроить парсер под нужную локаль.
Что это меняет при решении
CAPTCHA на основе токена (reCAPTCHA, Turnstile, GeeTest v3)
Языковые настройки влияют на интерфейс, но не на токен. Решение в CaptchaAI не зависит от языка: вы отправляете sitekey и URL страницы, CaptchaAI возвращает валидный токен, и он действителен вне зависимости от того, на каком языке отображался виджет. Языковой параметр в запрос к CaptchaAI для этих типов передавать не нужно.
hCaptcha локализуется по той же логике (меняется текст задания, sitekey — нет), но CaptchaAI пока не решает hCaptcha — это справочная информация для сравнения провайдеров, а не инструкция по вызову API.
CAPTCHA-изображение
Здесь язык напрямую определяет символы на картинке, а значит и правильный параметр language:
| Язык сайта | Содержимое CAPTCHA | Параметр language в CaptchaAI |
|---|---|---|
| Английский | «Введите текст: XKCD42» | 0 (по умолчанию / латиница) |
| Русский | «Введите текст: ШКАФ» | 1 (кириллица) или 2 |
| Китайский | «请输入验证码: 汉字» | 2 (нелатинские символы) |
| Арабский | «أدخل النص: عربي» | 2 (нелатинские символы) |
| Японский | «文字を入力: ひらがな» | 2 (нелатинские символы) |
Аудио-CAPTCHA
Аудио-испытания reCAPTCHA озвучиваются на языке из параметра hl или заголовка Accept-Language. CaptchaAI решает их тем же стандартным потоком, что и обычную reCAPTCHA, — метод решения от языка аудио не зависит.
Как провайдер узнаёт язык посетителя
Провайдеры CAPTCHA определяют язык по нескольким независимым сигналам, и они не всегда совпадают друг с другом.
Заголовок Accept-Language
Accept-Language: ja-JP,ja;q=0.9,en-US;q=0.8,en;q=0.7
Это говорит серверу: сначала японский (Япония), затем английский (США), затем английский без региона. reCAPTCHA и Turnstile используют этот заголовок для выбора языка интерфейса.
HTML-параметр hl
reCAPTCHA принимает явный языковой параметр прямо при загрузке скрипта:
<!-- Force English reCAPTCHA -->
<script src="https://www.google.com/recaptcha/api.js?hl=en"></script>
<!-- Force Japanese -->
<script src="https://www.google.com/recaptcha/api.js?hl=ja"></script>
Параметр hl перекрывает заголовок Accept-Language. Для решения совпадение не требуется — CaptchaAI возвращает токен независимо от языка интерфейса.
Гео-IP
Часть конфигураций CAPTCHA завязана на регион запроса, а не только на заголовки браузера:
- IP из Китая — сайт может отдать GeeTest вместо reCAPTCHA (reCAPTCHA в Китае заблокирована на уровне сети).
- IP из ЕС — перед CAPTCHA может показаться баннер согласия по GDPR.
- IP из региона с повышенным риском — испытание может оказаться сложнее обычного при том же sitekey.
navigator.language в браузере
CAPTCHA на JavaScript считывает язык из объекта браузера:
navigator.language // "en-US"
navigator.languages // ["en-US", "en", "ja"]
В headless-браузерах по умолчанию используется системная локаль хоста, а не локаль целевого сайта. Задавайте её явно:
// Playwright
const context = await browser.newContext({
locale: 'ja-JP',
});
// Puppeteer
const page = await browser.newPage();
await page.setExtraHTTPHeaders({
'Accept-Language': 'ja-JP,ja;q=0.9',
});
Сводка: что локализуется, а что нет
- reCAPTCHA — локализует текст интерфейса, подписи к изображениям и язык аудио; sitekey, поток проверки и формат токена не меняются.
- Cloudflare Turnstile — локализует текст виджета и сообщения об ошибках; sitekey и формат токена остаются прежними.
- hCaptcha — локализует инструкции к заданиям и подписи категорий; sitekey и формат токена не меняются.
- Изображение/OCR — меняются набор символов и язык текста; формат изображения и поток submit/poll — нет.
Пример: кириллические формы на порталах СНГ
Если парсер работает с формами на русскоязычных порталах — бронирование, личные кабинеты в РФ, Беларуси, Казахстане, — сайт обычно сразу показывает CAPTCHA-изображение с кириллическими символами, а не транслитом. Задайте CaptchaAI language=1 (кириллица) вместо общего language=2 — меньше повторных попыток на буквах вроде «Ш», «Щ», «Ъ». Если инфраструктура развёрнута в Европе или Казахстане, а цель — в РФ, заложите запас по таймауту: сеть до цели из удалённого дата-центра часто добавляет 150–300 мс на запрос, и это заметно при большом числе параллельных потоков.
Типичные проблемы с локализацией
Если парсер отправляет Accept-Language: en-US на японский сайт, CAPTCHA может отрисоваться на английском — для CAPTCHA на основе токена это не проблема, но может насторожить сайт, если он сверяет согласованность языковых сигналов между собой. Кроме того, в разных регионах реально используются разные провайдеры CAPTCHA:
- Западные рынки — reCAPTCHA, Cloudflare Turnstile, hCaptcha.
- Китай — GeeTest, Tencent CAPTCHA, собственные изображения.
- Россия / СНГ — CAPTCHA-изображения собственной разработки, reCAPTCHA.
- Южная Корея — собственные слайдеры, CAPTCHA-изображения.
Поиск неисправностей
- reCAPTCHA показывается не на том языке — параметр
hlв теге скрипта расходится с заголовком Accept-Language; не критично, токен от языка интерфейса не зависит. - CAPTCHA-изображение распознано с ошибками — параметр
languageне совпадает со скриптом на картинке; для нелатинских символов ставьтеlanguage=2, для кириллицы —language=1. - Сайт по региону отдаёт другой тип CAPTCHA — выбор провайдера идёт по гео-IP; используйте прокси, соответствующий целевому региону.
- Headless-браузер показывает не ту локаль — по умолчанию берётся системная локаль хоста; задайте
localeявно в контексте браузера. - Аудио-CAPTCHA звучит не на том языке — параметр
hlперекрывает заголовок; на решение через CaptchaAI это не влияет.
Частые вопросы
Какой параметр language выбрать для CAPTCHA-изображения с кириллицей или иероглифами?
Для кириллицы обычно достаточно language=1. Для китайского, японского, арабского и других нелатинских наборов используйте language=2. Значение 0 оставляйте только для латиницы по умолчанию.
Может ли один и тот же sitekey отдавать испытание разной сложности в зависимости от региона?
Да. Провайдеры CAPTCHA нередко подстраивают сложность под региональный риск-скор: трафик из отдельных регионов получает более строгие испытания при том же sitekey. На решение через CaptchaAI это не влияет — API обрабатывает испытания любой сложности.
Стоит ли синхронизировать Accept-Language прокси с языком целевого сайта?
Для консистентности — да, это хорошая практика: часть сайтов сверяет заголовки языка с другими сигналами и может насторожиться при расхождении. На сам процесс решения в CaptchaAI это не влияет.
Почему сайты в Китае показывают GeeTest вместо reCAPTCHA?
reCAPTCHA заблокирована в Китае на уровне сети, поэтому сайты, ориентированные на китайский трафик, по умолчанию переключаются на GeeTest или собственные CAPTCHA-виджеты ещё до того, как решают, показывать ли капчу вообще.
Влияет ли локаль браузера на скорость решения в CaptchaAI?
Нет. Скорость решения определяется типом CAPTCHA и текущей нагрузкой, а не языком интерфейса или содержимым запроса Accept-Language.
Следующие шаги
Начните с быстрого старта, а затем переходите к пошаговым руководствам по конкретным типам CAPTCHA: