Если в исходном коде страницы встречается gcaptcha4.geetest.com или скрипт gt4.js — перед вами GeeTest v4, переработанная версия с новым протоколом валидации и адаптивной оценкой рисков. Сразу о статусе: CaptchaAI решает GeeTest v3 с высокой долей успешных решений. GeeTest v4 он не решает. Ниже разберём, чем v4 отличается от v3, как определить версию прямо в коде страницы и что из этого решает CaptchaAI.
Чем GeeTest v4 отличается от v3
Главное отличие — способ инициализации. В v3 сервер отдавал пару gt + challenge, и без неё вызов API был невозможен. В v4 клиенту достаётся только captcha_id, а сам вызов формируется на стороне браузера. Меняется и схема валидации: вместо серверного challenge результат подтверждается токенами lot_number и pass_token.
| Параметр | GeeTest v3 | GeeTest v4 |
|---|---|---|
| Инициализация | gt + challenge с сервера |
Только captcha_id |
| Параметр вызова | Приходит из вызова API | Формируется на стороне клиента |
| Типы заданий | Слайд, клик | Слайд, клик, выбор иконок, пространственная логика |
| Валидация | Сервер возвращает challenge |
Токены lot_number + pass_token |
| Конечная точка API | api.geetest.com |
gcaptcha4.geetest.com |
| Сложность | Фиксированная | Адаптивная оценка рисков |
Для команды, которая парсит портал или гоняет staging-тесты, это означает одно: код, написанный под v3, на странице с v4 работать не будет — ни извлечение параметров, ни разбор ответа.
Типы заданий в GeeTest v4
Адаптивная логика v4 показывает пользователю разные задания в зависимости от оценки риска. Их четыре.
Слайд-пазл
Классическая задача «перетащи кусочек»: пользователь двигает фрагмент до совпадения. Знаком ещё по v3.
Выбор кликом
Пользователь кликает по конкретным объектам (например, «выберите все лица»). Основано на распознавании иконок.
Пространственная логика
Новинка v4 — нужно расставить фигуры в правильном пространственном порядке. Заметно сложнее заданий v3.
Сопоставление иконок
Пользователь сопоставляет иконки, показанные последовательностью. Автоматизировать вручную труднее всего.
Какое бы из этих заданий ни показала страница, это GeeTest v4, и решить такую страницу CaptchaAI не может. CaptchaAI решает GeeTest v3.
Извлечение параметров GeeTest v4
GeeTest v4 отдаёт captcha_id через JavaScript, поэтому статического HTTP-запроса недостаточно — страницу нужно отрендерить. Selenium открывает её в браузере, а регулярное выражение вытягивает идентификатор из готового DOM. Заодно проверяем наличие маркеров gcaptcha4 / gt4.js, чтобы точно убедиться в версии.
# extract_geetest_v4.py
import re
from selenium import webdriver
def extract_geetest_v4_params(url):
"""Extract GeeTest v4 captcha_id from a page."""
driver = webdriver.Chrome()
driver.get(url)
page_source = driver.page_source
# GeeTest v4 uses captcha_id instead of gt
match = re.search(r'captcha_id["\']?\s*[:=]\s*["\']([a-f0-9]+)', page_source)
captcha_id = match.group(1) if match else None
# Check for v4-specific script
is_v4 = "gcaptcha4" in page_source or "gt4.js" in page_source
driver.quit()
return {
"captcha_id": captcha_id,
"is_v4": is_v4,
"pageurl": url,
}
# Usage
params = extract_geetest_v4_params("https://staging.example.com/qa-login")
print(f"Captcha ID: {params['captcha_id']}")
print(f"Is v4: {params['is_v4']}")
Что решает CaptchaAI
CaptchaAI решает GeeTest v3. GeeTest v4 он не решает. Метод geetest в API CaptchaAI принимает значения v3 (gt, свежий challenge и pageurl) и возвращает challenge, validate и seccode. Параметров для v4 у него нет, поэтому не отправляйте captcha_id от v4 в поле gt. Сначала выполните проверку выше: если страница загружает gcaptcha4.geetest.com или gt4.js, на ней работает v4, и CaptchaAI её не решит. Если страница всё ещё на v3, полный процесс разобран в руководстве Как решить GeeTest v3 с помощью API.
Чем отличается валидация v4
На странице с v3 успешное прохождение даёт три значения — geetest_challenge, geetest_validate и geetest_seccode, — которые бэкенд сайта проверяет в GeeTest. На странице с v4 captchaObj.getValidate() возвращает вместо них четыре значения: lot_number, captcha_output, pass_token и gen_time. Бэкенд сайта отправляет их на конечную точку v4 /validate на gcaptcha4.geetest.com вместе со своим captcha_id и sign_token, подписанным своим закрытым ключом (документация GeeTest v4: web API и server API). Коду, который читает или заполняет три поля v3, на странице с v4 работать не с чем.
Устранение типичных проблем
| Проблема | Причина | Как исправить |
|---|---|---|
Поиск gt / challenge ничего не находит на странице, которая раньше работала |
Сайт перешёл на GeeTest v4, где нет challenge, выдаваемого сервером |
Проверьте страницу на gcaptcha4.geetest.com или gt4.js; CaptchaAI решает только GeeTest v3 |
ERROR_WRONG_CAPTCHA_ID от CaptchaAI |
Неверный gt или challenge, например captcha_id от v4, переданный как gt |
Отправляйте gt страницы от v3 и свежий challenge в каждом запросе |
captcha_id не найден |
Значение отрисовывается через JavaScript | Извлекайте его из готового DOM через Selenium |
Часто задаваемые вопросы
Доступно ли решение GeeTest v4 в CaptchaAI?
Нет. CaptchaAI решает GeeTest v3 через API с высокой долей успешных решений. GeeTest v4 он не решает, поэтому показателя успешности для v4 нет.
Как определить версию GeeTest прямо на странице?
Ищите в исходном коде gcaptcha4.geetest.com или gt4.js — это признаки v4. Если видите api.geetest.com и параметр challenge, перед вами v3.
Нужно ли переписывать код при переходе с v3 на v4?
Интеграцию под v3 нельзя просто направить на страницу с v4: там нет challenge, выдаваемого сервером (только captcha_id), а успешное прохождение возвращает четыре значения вместо трёх. Но CaptchaAI решает только GeeTest v3: страницы с v4 он не решает.
Какой тариф CaptchaAI подойдёт для объёмов GeeTest v3?
Оплата идёт по числу одновременных потоков, а не по количеству решений. Для старта и небольших нагрузок хватает тарифа BASIC ($15/мес, 5 потоков) с неограниченным числом решений в рамках потоков; при росте очереди выбирайте план с большим числом потоков.
Связанные руководства
Решайте GeeTest v3 — начните с CaptchaAI. GeeTest v4 CaptchaAI не решает.