Слайдер вместо привычной галочки «Я не робот» — верный признак, что перед вами 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 в архитектуру заранее.