Эта статья была полезной?
Как обойти и решить капчу GeeTest V4 автоматически
Технический специалист

Введение
Если вы автоматизируете взаимодействие с сайтами, защищёнными капчей GeeTest версии 4, это руководство поможет вам настроить интеграцию с сервисом RuCaptcha.
GeeTest V4 — это современная система защиты, которая использует интерактивные задачи и поведенческий анализ. В отличие от версии 3, V4 не требует извлечения динамического параметра challenge, что упрощает подготовку запроса и повышает стабильность решения.
В статье мы разберём оба метода отправки задач: без прокси (GeeTestTaskProxyless) и с прокси (GeeTestTask), а также покажем актуальные примеры запросов в формате JSON.
Общие сведения
Что такое GeeTest V4
GeeTest V4 — это эволюция популярной капчи, которая сочетает визуальные задачи с анализом поведения пользователя. Основные особенности версии 4:
- Упрощённая интеграция: не нужно извлекать
challenge - Статический идентификатор
captcha_idдля каждого сайта - Возвращает набор токенов:
lot_number,pass_token,gen_time,captcha_output - Поддержка как proxyless, так и proxy-режима
Типы задач в API RuCaptcha
| Тип задачи | Описание | Когда использовать |
|---|---|---|
GeeTestTaskProxyless |
Решение через внутренние прокси RuCaptcha | Если сайт не блокирует дата-центры и не требует резидентные IP |
GeeTestTask |
Решение с указанием вашего прокси | Если сайт проверяет геолокацию, блокирует облачные IP или требует сессии |
Параметры задачи GeeTest V4
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
type |
String | Да | GeeTestTaskProxyless или GeeTestTask |
websiteURL |
String | Да | Полный URL страницы, где загружается капча |
version |
Integer | Да | Должен быть установлен в 4 для GeeTest V4 |
initParameters |
Object | Да | Параметры из initGeetest4, обязательно должен содержать captcha_id |
proxyType |
String | Нет* | Тип прокси: http, https, socks4, socks5 (только для GeeTestTask) |
proxyAddress |
String | Нет* | IP-адрес прокси (только для GeeTestTask) |
proxyPort |
String | Нет* | Порт прокси (только для GeeTestTask) |
proxyLogin |
String | Нет* | Логин прокси, если требуется авторизация |
proxyPassword |
String | Нет* | Пароль прокси, если требуется авторизация |
* Обязательны только при использовании типа задачи GeeTestTask
Подготовка окружения
Требования к запросам
Для работы с API RuCaptcha вам понадобится:
- API-ключ из личного кабинета rucaptcha.com
- HTTPS-клиент для отправки POST-запросов (curl, Postman, библиотека в вашем языке)
- Валидный
captcha_idс целевого сайта - Полный URL страницы, где отображается капча
Получение API-ключа
- Авторизуйтесь в личном кабинете RuCaptcha
- Перейдите в раздел настроек аккаунта
- Скопируйте ваш
clientKey(API-ключ) - Для безопасности храните ключ в переменной окружения, а не в коде
Анализ страницы
Поиск captcha_id
Для GeeTest V4 параметр captcha_id является статическим и обычно содержится в исходном коде страницы.
Способ 1: через DevTools
- Откройте целевую страницу в браузере
- Нажмите F12 для открытия инструментов разработчика
- Перейдите на вкладку Elements
- Найдите элемент с атрибутом
data-geetestили вызовinitGeetest4
Пример HTML:
html
<div id="geetest-captcha" data-geetest="e392e1d7fd421dc63325744d5a2b9c73"></div>
Значение атрибута — это captcha_id.
Способ 2: через вкладку Network
- В DevTools перейдите на вкладку Network
- Обновите страницу с капчей
- Отфильтруйте запросы по
geetestилиcaptcha - Найдите запрос к
gcaptcha4.geetest.com/load— параметрcaptcha_idбудет в ответе или в параметрах запроса
Проверка websiteURL
Убедитесь, что вы указываете полный URL страницы, включая протокол:
- Правильно:
https://2captcha.com/demo/geetest-v4 - Неправильно:
2captcha.com/demo/geetest-v4или/demo/geetest-v4
Реализация
Пример запроса: GeeTestTaskProxyless (без прокси)
Метод: createTask
Эндпоинт: https://api.rucaptcha.com/createTask
json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "GeeTestTaskProxyless",
"websiteURL": "https://2captcha.com/demo/geetest-v4",
"version": 4,
"initParameters": {
"captcha_id": "e392e1d7fd421dc63325744d5a2b9c73"
}
}
}
Пример запроса: GeeTestTask (с прокси)
json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "GeeTestTask",
"websiteURL": "https://2captcha.com/demo/geetest-v4",
"version": 4,
"initParameters": {
"captcha_id": "e392e1d7fd421dc63325744d5a2b9c73"
},
"proxyType": "http",
"proxyAddress": "1.2.3.4",
"proxyPort": "8080",
"proxyLogin": "user23",
"proxyPassword": "p4$w0rd"
}
}
Получение результата
После создания задачи используйте метод getTaskResult для получения решения.
Эндпоинт: https://api.rucaptcha.com/getTaskResult
Запрос:
json
{
"clientKey": "YOUR_API_KEY",
"taskId": 74455221488
}
Успешный ответ:
json
{
"errorId": 0,
"status": "ready",
"solution": {
"captcha_id": "e392e1d7fd421dc63325744d5a2b9c73",
"lot_number": "e6c3bed2854f41f880662c48afff5dcb",
"pass_token": "fad5eb52fc83bf7617402fcccfb211a21e0aa1d1044",
"gen_time": "1693924478",
"captcha_output": "fN36ufW6cQN4SQ-JRDQC70nSq9UcQBg=="
},
"cost": "0.00299",
"ip": "1.2.3.4",
"createTime": 1692863536,
"endTime": 1692863556,
"solveCount": 1
}
Использование решения на целевом сайте
Полученные параметры необходимо отправить на целевой сайт в том же формате, в котором их ожидает оригинальная форма. Обычно это:
lot_numberpass_tokengen_timecaptcha_output
Эти значения часто передаются в теле POST-запроса или в заголовках. Перехватите оригинальный запрос через DevTools (вкладка Network) и воспроизведите его, подставив полученные токены.
Обработка ошибок API
Если в ответе errorId не равен 0, проверьте поле errorDescription:
json
{
"errorId": 1,
"errorCode": "ERROR_WRONG_USER_KEY",
"errorDescription": "You've provided an invalid API key"
}
Распространённые коды ошибок:
| Код ошибки | Описание | Решение |
|---|---|---|
ERROR_WRONG_USER_KEY |
Неверный API-ключ | Проверьте clientKey в личном кабинете |
ERROR_ZERO_BALANCE |
Недостаточно средств | Пополните баланс аккаунта |
ERROR_BAD_PARAMETERS |
Некорректные параметры задачи | Проверьте формат captcha_id, websiteURL, version |
ERROR_PROXY_CONNECT_REFUSED |
Не удалось подключиться к прокси | Проверьте данные прокси и его доступность |
ERROR_CAPTCHA_UNSOLVABLE |
Капча не может быть решена | Убедитесь, что captcha_id актуален и страница доступна |
Дополнительные ресурсы
- Документация GeeTest API — полная спецификация методов
- Песочница для тестов — безопасное тестирование без списания средств
- Примеры запросов на GitHub — коллекция примеров на разных языках
- Поддержка — создайте тикет, если возникли технические сложности
Контрольный список
- Получен и проверен API-ключ из личного кабинета RuCaptcha
- Извлечён актуальный
captcha_idиз исходного кода целевого сайта - Указан полный
websiteURLс протоколомhttps:// - Для GeeTest V4 установлен параметр
"version": 4 - Объект
initParametersсодержит ключcaptcha_id - При использовании прокси проверены все поля: тип, адрес, порт, логин, пароль
- Добавлена обработка ошибок по кодам
errorIdиerrorCode - Протестирована отправка полученного решения на целевой сайт
- Настроено логирование запросов и ответов для отладки
Заключение
GeeTest V4 предлагает более простую интеграцию по сравнению с предыдущей версией: вам не нужно извлекать динамический challenge, достаточно статического captcha_id и полного URL страницы.
Сервис RuCaptcha поддерживает два метода решения: GeeTestTaskProxyless для быстрого старта и GeeTestTask для случаев, когда требуется контроль над прокси. Оба метода возвращают одинаковый набор токенов: lot_number, pass_token, gen_time, captcha_output, которые необходимо передать на целевой сайт для верификации.
Интеграция с RuCaptcha позволяет делегировать сложную часть обхода капчи специализированному сервису, сосредоточив усилия на логике вашего приложения. При соблюдении параметров из этого руководства вы сможете стабильно решать GeeTest V4 на любых сайтах.