Эта статья была полезной?
Как решить Hunt капчу
Технический специалист
Введение
Hunt капча это токен-based защита, которая проверяет уникальность отпечатка браузера и сессии пользователя. Автоматизация требует двухэтапного подхода. Сначала нужно получить уникальный идентификатор X-HD, затем использовать его для решения капчи.
Сервис 2Captcha предоставляет API для обхода Hunt капчи через тип задачи HuntTask. Решение возвращает токен, который нужно передать на целевой сайт для прохождения проверки.
Эта статья описывает полный процесс, от создания задачи до работы с cookies и обработки ответов.
Общие сведения
Hunt Captcha это система защиты, основанная на токенах и отпечатках браузера. В отличие от классических капч с изображениями, Hunt проверяет уникальность сессии и поведенческие паттерны.
Ключевые особенности:
- Двухэтапный процесс. Сначала получение X-HD (уникального отпечатка), затем решение капчи
- Привязка к IP. X-HD связан с IP-адресом, поэтому все запросы должны идти через один прокси
- Работа с cookies. Критически важна для поддержания сессии
- Требование прокси. Задача
HuntTaskобязательно использует прокси
Основная проблема при автоматизации это синхронизация всех параметров (IP, User-Agent, cookies) между запросами. Если что-то меняется, система безопасности отклоняет решение.
Подготовка окружения
Перед началом работы убедитесь, что у вас есть:
- API-ключ из личного кабинета 2Captcha
- Рабочий прокси (HTTP, SOCKS4 или SOCKS5) с фиксированным IP
- URL целевой страницы с Hunt капчей
- Ссылка на api.js. Файл библиотеки капчи, обычно виден в исходном коде страницы
- Инструмент для HTTP-запросов (curl, Postman, Python requests и т.д.)
Прокси должен быть статичным. Ротационные прокси не подойдут, так как X-HD привязан к конкретному IP. Если у вас нет своего прокси, можно использовать прокси от 2Captcha. Они специально подобраны для работы с разными типами капч и хорошо показывают себя на сайтах со сложной защитой. Посмотреть доступные варианты можно на странице Прокси.
Анализ страницы
Перед созданием задачи нужно извлечь из страницы три ключевых элемента:
- websiteURL. Полный URL страницы с капчей
- apiGetLib. Ссылка на JavaScript-файл библиотеки Hunt (обычно выглядит как
https://example.com/hd-api/external/apps/app-id/api.js) - meta.token. Значение, которое сайт возвращает после первого запроса с X-HD
Для извлечения apiGetLib откройте исходный код страницы (Ctrl+U) и найдите тег <script> с атрибутом src, содержащий api.js или hd-api.
Для получения meta.token нужно сначала выполнить первый запрос к API без параметра data, получить X-HD, отправить его на сайт и извлечь токен из ответа.
Реализация
Шаг 1. Создание задачи без data (получение X-HD)
Отправьте POST-запрос на создание задачи без параметра data:
Эндпоинт: https://api.2captcha.com/createTask
Метод: POST
Content-Type: application/json
Пример запроса:
json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "HuntTask",
"websiteURL": "https://example.com/page-with-hunt",
"apiGetLib": "https://example.com/hd-api/external/apps/app-id/api.js",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",
"proxyType": "http",
"proxyAddress": "1.2.3.4",
"proxyPort": 8080,
"proxyLogin": "login",
"proxyPassword": "password"
}
}
Пример ответа:
json
{
"errorId": 0,
"taskId": "123456789"
}
Шаг 2. Получение результата (X-HD)
Отправьте POST-запрос на получение результата задачи:
Эндпоинт: https://api.2captcha.com/getTaskResult
Метод: POST
Content-Type: application/json
Пример запроса:
json
{
"clientKey": "YOUR_API_KEY",
"taskId": "123456789"
}
Пример ответа:
json
{
"errorId": 0,
"status": "ready",
"solution": {
"X-HD": "abc123def456..."
},
"cost": "0.003",
"ip": "1.2.3.4",
"createTime": 1692863536,
"endTime": 1692863556,
"solveCount": 1
}
Извлеките значение solution.X-HD из ответа.
Шаг 3. Отправка X-HD на сайт
Отправьте GET-запрос на целевой сайт с заголовком X-HD:
GET https://example.com/page-with-hunt
Headers:
X-HD: abc123def456...
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36
Cookie: platform_type=desktop; SESSION=12a3aea8cdcfdbb9e7df8ee99b526a84; ...
Сайт вернет ответ с meta.token. Извлеките это значение из JSON-ответа или HTML.
Шаг 4. Создание задачи с data (решение капчи)
Отправьте POST-запрос на создание задачи с параметром data, равным meta.token:
Эндпоинт: https://api.2captcha.com/createTask
Метод: POST
Content-Type: application/json
Пример запроса:
json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "HuntTask",
"websiteURL": "https://example.com/page-with-hunt",
"apiGetLib": "https://example.com/hd-api/external/apps/app-id/api.js",
"data": "kufyHK/s/j...wIW",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",
"proxyType": "http",
"proxyAddress": "1.2.3.4",
"proxyPort": 8080,
"proxyLogin": "login",
"proxyPassword": "password"
}
}
Шаг 5. Получение решения
Отправьте POST-запрос на получение результата:
Эндпоинт: https://api.2captcha.com/getTaskResult
Метод: POST
Content-Type: application/json
Пример запроса:
json
{
"clientKey": "YOUR_API_KEY",
"taskId": "123456790"
}
Пример ответа:
json
{
"errorId": 0,
"status": "ready",
"solution": {
"token": "6IyDCCpDd.../z/kLNSpjewI="
},
"cost": "0.003",
"ip": "1.2.3.4",
"createTime": 1692863536,
"endTime": 1692863556,
"solveCount": 1
}
Извлеките solution.token и передайте его на целевой сайт для завершения проверки.
Пояснения к параметрам
Параметры задачи HuntTask
| Параметр | Тип | Обязателен | Описание |
|---|---|---|---|
type |
String | Да | Тип задачи: HuntTask |
websiteURL |
String | Да | Полный URL страницы с капчей |
apiGetLib |
String | Да | Ссылка на файл api.js библиотеки Hunt |
userAgent |
String | Нет | User-Agent браузера. Рекомендуется указывать для консистентности |
data |
String | Нет | Значение meta.token для второго этапа. Отсутствует на первом этапе |
proxyType |
String | Да | Тип прокси: http, socks4, socks5 |
proxyAddress |
String | Да | IP-адрес или хост прокси |
proxyPort |
Number | Да | Порт прокси |
proxyLogin |
String | Нет | Логин для авторизации на прокси |
proxyPassword |
String | Нет | Пароль для авторизации на прокси |
Структура ответа
| Поле | Тип | Описание |
|---|---|---|
errorId |
Number | Код ошибки. 0 означает успех |
status |
String | Статус задачи: processing или ready |
solution.X-HD |
String | Уникальный отпечаток (первый этап) |
solution.token |
String | Токен решения капчи (второй этап) |
cost |
String | Стоимость решения в валюте сервиса |
ip |
String | IP прокси, использованный для решения |
createTime |
Number | Timestamp создания задачи |
endTime |
Number | Timestamp завершения решения |
solveCount |
Number | Количество попыток решения |
Работа с cookies
Cookies критически важны для Hunt капчи. Сайт отслеживает сессию через cookies, и если они не передаются или меняются, проверка отклоняется.
Пример строки cookies
platform_type=desktop; typeBetNames=full; _glhf=1234567890; coefview=0; visit=1-123abc012345d1be726746568edc62d9; fast_coupon=true; v3fr=1; lng=en; flaglng=en; SESSION=12a3aea8cdcfdbb9e7df8ee99b526a84; auid=ab0dW2mqlz1Tjo2AAwplAg==; ggru=195; che_g=12abcede-691f-c7b2-d1e8-8488bc557d98
Основные правила работы с cookies
- Получите начальные cookies. Отправьте GET-запрос на целевую страницу и извлеките cookies из заголовка
Set-Cookie - Сохраните все значения. Cookies понадобятся для всех последующих запросов
- Передавайте cookies в каждом запросе. Добавляйте их в заголовок
Cookieпри обращении к API и сайту - Используйте один IP. Все запросы должны идти через один прокси
- Используйте один User-Agent. Не меняйте User-Agent между запросами
- Обновляйте cookies при необходимости. Часть cookies генерируется JavaScript на стороне клиента
Пример заголовков с cookies
GET https://example.com/page-with-hunt
Headers:
X-HD: abc123def456...
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36
Cookie: platform_type=desktop; SESSION=12a3aea8cdcfdbb9e7df8ee99b526a84; visit=1-123abc012345d1be726746568edc62d9
Типичные ошибки
| Ошибка | Причина | Решение |
|---|---|---|
ERROR_WRONG_USER_KEY |
Неверный API-ключ | Проверьте clientKey в личном кабинете 2Captcha |
ERROR_ZERO_BALANCE |
Недостаточно средств | Пополните баланс в личном кабинете |
ERROR_TASK_NOT_FOUND |
Неверный taskId или задача устарела | Проверьте taskId и создайте новую задачу |
| Отклонение решения сайтом | Несоответствие IP, User-Agent или cookies | Используйте один прокси и User-Agent для всех запросов, передавайте cookies |
meta.token не найден |
Сайт не вернул токен после запроса с X-HD | Проверьте правильность X-HD и cookies, убедитесь, что запрос идет через тот же прокси |
| Таймаут решения | Задача не решена за отведенное время | Увеличьте интервал опроса getTaskResult или проверьте доступность целевого сайта |
| Ошибка прокси | Прокси недоступен или блокируется | Проверьте работоспособность прокси, убедитесь, что он поддерживает HTTPS. Если используете свой прокси, попробуйте прокси от 2Captcha, они оптимизированы под разные типы капч |
Дополнительные ресурсы
Контрольный список
- Получен API-ключ из личного кабинета 2Captcha
- Настроен статичный прокси
- Извлечен
websiteURLиapiGetLibиз исходного кода страницы - Реализован двухэтапный процесс: получение X-HD, отправка на сайт, получение meta.token, решение капчи
- Настроена работа с cookies: получение, сохранение, передача в заголовках
- Все запросы используют один IP (прокси) и один User-Agent
- Реализована обработка ошибок и таймаутов
- Протестировано решение на целевом сайте
- Настроено логирование для отладки
Заключение
Hunt капча требует внимательной работы с сессией и отпечатками браузера. Двухэтапный процесс через API 2Captcha позволяет автоматизировать решение, но критически важно соблюдать консистентность: один прокси, один User-Agent, правильные cookies.
Используйте тип задачи HuntTask для решения капчи через прокси. Первый запрос без data возвращает X-HD, второй запрос с data = meta.token возвращает токен решения.
Не забывайте про работу с cookies, без них сайт отклонит решение. Сохраняйте cookies из первого ответа и передавайте их во всех последующих запросах.
Качество прокси во многом определяет успех. Если свои прокси показывают нестабильный результат, имеет смысл попробовать наш прокси.
Подробная документация доступна на странице Hunt Captcha API.