Comparisons

GeeTest против reCAPTCHA

Слайдер вместо привычной галочки «Я не робот» — верный признак, что перед вами GeeTest, а не reCAPTCHA. Для автоматизации разница не косметическая: GeeTest требует свежих параметров и сессии под каждое решение, а reCAPTCHA почти всегда работает со статичным sitekey. Ниже — таблицы для быстрого сравнения, разбор логики детекции ботов и рабочие примеры для API CaptchaAI на оба типа.


Таблица сравнения: GeeTest v3, reCAPTCHA v2 и reCAPTCHA v3

Параметр GeeTest v3 reCAPTCHA v2 reCAPTCHA v3
Тип задачи Slide/icon/word-пазл Выбор сетки изображений Нет (невидимая)
Поведенческий анализ Траектория курсора, кривые скорости Мышь/клавиатура, cookies Непрерывный мониторинг
Нужные параметры gt, challenge, pageurl googlekey, pageurl googlekey, action, pageurl
Формат ответа challenge, validate, seccode Один токен Токен + оценка
Географический фокус Китай, Азия, растущий охват Глобальный Глобальный
Бесплатный уровень Ограниченный Есть Есть
Динамика параметров challenge меняется каждую сессию Статичный sitekey Статичный sitekey

Когда выбирать GeeTest, а когда reCAPTCHA

На практике выбор чаще делает не разработчик, а сайт, который вы автоматизируете, — GeeTest ставят преимущественно азиатские платформы и маркетплейсы, reCAPTCHA — глобальные SaaS-сервисы и формы регистрации. Но если вы проектируете тестовый стенд с нуля, разница в стоимости интеграции всё равно важна:

  • GeeTest, если целевой сайт уже использует его — альтернативы всё равно нет, а решение через API CaptchaAI не сложнее, чем через reCAPTCHA, просто требует держать сессию между запросом параметров и отправкой решения.
  • reCAPTCHA, если вы пишете тестовый стенд с нуля и параметры автоматизации не заданы окружением — токен проще передать, а логика повторных попыток короче.

Команда, которая параллельно тестирует интеграцию с азиатским маркетплейсом (там чаще стоит GeeTest) и с глобальной SaaS-формой регистрации (обычно reCAPTCHA), быстро замечает разницу: под GeeTest сессия держится дольше, а reCAPTCHA-потоки можно гонять параллельно без этой зависимости — учитывайте это при расчёте потоков в тарифе CaptchaAI.


Как каждая система вычисляет бота

Сигнал GeeTest reCAPTCHA
Траектория движения Кривые скорости и ускорения слайдера, микрокоррекции курсора Мышь/клавиатура в v2, непрерывный скоринг в v3
Линейность движения Идеально прямая линия — верный признак скрипта Не проверяется отдельно, входит в общий поведенческий скоринг
Тайминг выполнения Слишком быстрое или слишком равномерное решение читается как бот Поведенческие паттерны анализируются во времени
Репутация Внешние базы репутации не используются cookies и IP-репутация сверяются по базе Google
Окружение браузера Сканирует сигналы автоматизации v2 добавляет визуальную задачу как вторичную проверку

Что учитывать при автоматизации

Даже когда оба типа CAPTCHA решаются через один и тот же API, конвейер вокруг них не идентичен: GeeTest требует держать состояние сессии, reCAPTCHA — нет. Вот на что это влияет на практике:

Момент GeeTest reCAPTCHA
Свежие параметры под каждое решение Да — challenge одноразовый Нет — sitekey статичный
Управление сессией Нужно держать сессию между запросом параметров и решением Проще — токен самодостаточен
Передача решения в форму 3 поля формы 1 скрытое поле
Резервное поведение Обычно резервного варианта нет v3 часто откатывается на v2
Обработка ошибок Истёкшие challenge Истёкшие токены

Разница почти незаметна в staging. Перед продакшеном стоит прогнать оба потока под реальной нагрузкой и свериться с логами res.php, чтобы вовремя заметить рост числа ошибок из-за просроченных challenge на стороне GeeTest.

Практический совет: держите запрос GeeTest-параметров и отправку решения в одном воркере пула. Если развести их по разным потокам, легко словить гонку состояний между gt/challenge и уже устаревшей сессией.


Сложность интеграции и решения через API

Аспект GeeTest v3 reCAPTCHA v2 reCAPTCHA v3
Извлечение параметров Среднее — нужно получить gt и challenge Простое (статичный sitekey) Простое (sitekey + action)
API-метод method=geetest method=userrecaptcha method=userrecaptcha + version=v3
Время решения 15–30 с 15–30 с 5–10 с
Разбор ответа Сложный (3 значения) Простой (1 токен) Простой (1 токен)
Переиспользование challenge Нет — одноразовый N/A (токен) N/A (токен)

Примеры кода для CaptchaAI API

GeeTest v3

# Must fetch fresh challenge first
params = requests.get("https://example.com/api/captcha").json()

resp = requests.get("https://ocr.captchaai.com/in.php", params={
    "key": API_KEY, "method": "geetest",
    "gt": params["gt"], "challenge": params["challenge"],
    "pageurl": URL, "json": 1
}).json()

# Solution has 3 parts
solution = poll_result(resp["request"])
# solution = {geetest_challenge, geetest_validate, geetest_seccode}

reCAPTCHA v2

resp = requests.get("https://ocr.captchaai.com/in.php", params={
    "key": API_KEY, "method": "userrecaptcha",
    "googlekey": "6Le-wvkSAAAA...", "pageurl": URL, "json": 1
}).json()

# Solution is a single token
token = poll_result(resp["request"])

Обратите внимание: у GeeTest ответ нужно распаковать на три поля перед отправкой в форму, у reCAPTCHA — вставить один токен. Это главное, что усложняет пайплайн под GeeTest.


Часто задаваемые вопросы

Что встречается чаще — GeeTest или reCAPTCHA?

reCAPTCHA распространена намного шире в глобальном масштабе. GeeTest доминирует в Китае и активно растёт в Азии, Латинской Америке и на части европейских рынков.

Есть ли у GeeTest невидимый режим, как у reCAPTCHA v3?

Нет. GeeTest v3 всегда требует взаимодействия пользователя — слайд, клик по значку или сопоставление. Полностью невидимого режима, аналогичного reCAPTCHA v3, у него нет.

Сколько потоков в тарифе CaptchaAI нужно для GeeTest и reCAPTCHA?

CaptchaAI тарифицирует по количеству одновременных потоков, а не по числу решений: BASIC ($15/мес, 5 потоков) подойдёт для тестов и небольших пайплайнов, ADVANCE ($90/мес, 50 потоков) — для продакшена с заметным объёмом. Поскольку время решения GeeTest выше (15–30 с против 5–10 с у reCAPTCHA v3), поток под GeeTest занят дольше — это стоит учитывать при выборе тарифа для смешанной нагрузки.

Нужно ли по-разному обрабатывать ошибки для GeeTest и reCAPTCHA?

Да. У GeeTest истёкший challenge — это gt/challenge, запрошенные заново. У reCAPTCHA истёкший токен — это новый sitekey-ответ; сама пара sitekey/action остаётся статичной.

Когда в CaptchaAI появится поддержка GeeTest v4?

Пока нет точной даты — статус официально «скоро», сама поддержка ещё не запущена. Через API CaptchaAI сейчас решается только GeeTest v3, не закладывайте v4 в архитектуру заранее.


Связанные руководства

Комментарии для этой статьи отключены.