Эта статья была полезной?
Как решить капчу Tencent на сайте hjd2048.com
Технический специалист
Введение
Это руководство предназначено для разработчиков, которые интегрируют обход капчи Tencent (QCloud Captcha, Turing Captcha) через API 2Captcha. Мы разберём структуру запросов, необходимые параметры и приведём рабочие примеры в формате JSON для сайта hjd2048.com.
Что вам понадобится:
- API-ключ от 2Captcha
- Значение
appIdс целевого сайта - Полный URL страницы с капчей
- При необходимости — ссылка на скрипт капчи
captchaScript
1. Общие сведения о капче Tencent
1.1. Описание технологии
Tencent Captcha — это токенизированная система защиты, которая использует интерактивные задачи: слайдер-пазл, выбор точек или простую верификацию. После успешного решения сервер возвращает токен (ticket + randstr), который необходимо передать в форму или запрос к целевому сайту.
1.2. Типы задач
| Тип задачи | Описание | Когда использовать |
|---|---|---|
TencentTaskProxyless |
Решение через пул прокси 2Captcha | Для большинства случаев, когда сайт не блокирует дата-центровые IP |
TencentTask |
Решение с вашим прокси | Если сайт требует резидентные или гео-локализованные IP |
1.3. Обязательные и опциональные параметры
| Параметр | Тип | Обязателен | Описание | Пример |
|---|---|---|---|---|
type |
String | Да | Тип задачи: TencentTaskProxyless или TencentTask |
TencentTaskProxyless |
websiteURL |
String | Да | Полный URL страницы с капчей | https://hjd2048.com/2048/ |
appId |
String | Да | Идентификатор приложения из исходного кода | 189997505 |
captchaScript |
String | Нет | Ссылка на JS-скрипт капчи (для non-standard реализаций) | https://global.captcha.gtimg.com/TCaptcha-global.js |
2. Подготовка данных
2.1. Получение appId
- Откройте целевую страницу в браузере
- Нажмите F12 → вкладка Elements
- Найдите элемент с атрибутом
data-aidилиappId:
html
<div id="tcaptcha-widget" data-aid="189997505"></div>
Значение 189997505 — это ваш appId.
2.2. Поиск captchaScript (при необходимости)
Если стандартный запрос возвращает ERROR_CAPTCHA_UNSOLVABLE, добавьте параметр captchaScript:
- В DevTools откройте вкладку Network
- Обновите страницу, примените фильтр
captcha - Найдите запрос к
cap_union_prehandleили загрузку.js-файла - Скопируйте полный URL скрипта, например:
https://global.captcha.gtimg.com/TCaptcha-global.js
3. Формирование запроса
3.1. Эндпоинты API
| Метод | Эндпоинт | Назначение |
|---|---|---|
createTask |
https://api.2captcha.com/createTask |
Создание задачи на решение капчи |
getTaskResult |
https://api.2captcha.com/getTaskResult |
Получение результата по ID задачи |
3.2. Пример запроса для hjd2048.com (TencentTaskProxyless)
json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "TencentTaskProxyless",
"appId": "189997505",
"websiteURL": "https://hjd2048.com/2048/",
"captchaScript": "https://global.captcha.gtimg.com/TCaptcha-global.js"
}
}
3.3. Пример запроса с прокси (TencentTask)
json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "TencentTask",
"appId": "189997505",
"websiteURL": "https://hjd2048.com/2048/",
"captchaScript": "https://global.captcha.gtimg.com/TCaptcha-global.js",
"proxyType": "http",
"proxyAddress": "1.2.3.4",
"proxyPort": 8080,
"proxyLogin": "user23",
"proxyPassword": "p4$w0rd"
}
}
4. Получение и использование результата
4.1. Запрос результата
Отправьте POST-запрос на https://api.2captcha.com/getTaskResult:
json
{
"clientKey": "YOUR_API_KEY",
"taskId": 74455221488
}
4.2. Пример успешного ответа
json
{
"errorId": 0,
"status": "ready",
"solution": {
"appid": "189997505",
"ret": 0,
"ticket": "tr0344YjJASGmJGtohyWS_y6tJKiqVPIdFgl87vWlVaQoueR8D6DH28go-i-VjeassM31SXO7D0*",
"randstr": "@KVN"
},
"cost": "0.00299",
"createTime": 1692863536,
"endTime": 1692863556,
"solveCount": 1
}
4.3. Применение токена на целевом сайте
Полученные ticket и randstr необходимо передать в функцию обратного вызова, определённую при инициализации капчи:
javascript
// Пример инициализации на целевом сайте
const myCallbackFunction = (token) => {
// Верификация токена на бекенде сайта
}
var captcha = new TencentCaptcha('189997505', myCallbackFunction, {});
captcha.show();
// После получения решения от 2Captcha:
let res = JSON.parse(apiResponse);
myCallbackFunction(res.solution);
Если сайт ожидает токен в форме, добавьте скрытые поля:
html
<input type="hidden" name="ticket" value="tr0344...">
<input type="hidden" name="randstr" value="@KVN">
5. Альтернативные методы
5.1. Метод Coordinates для капч с выбором точек
Если стандартный метод не подходит, используйте задачу типа Coordinates:
json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "Coordinates",
"imageUrl": "https://ca.turing.captcha.qcloud.com/captcha-image.png",
"question": "Click on the same animals"
}
}
Ответ содержит строку с координатами:
json
{
"solution": {
"coordinates": "150,200;300,150;450,300"
}
}
5.2. Обработка ошибки ERROR_CAPTCHA_UNSOLVABLE
| Шаг | Действие |
|---|---|
| 1 | Убедитесь, что appId соответствует целевому сайту |
| 2 | Добавьте параметр captchaScript с актуальной ссылкой |
| 3 | Попробуйте альтернативные ссылки: https://ca.turing.captcha.qcloud.com/TCaptcha-global.js |
| 4 | Протестируйте задачу типа TencentTask с резидентным прокси |
6. Типичные ошибки
| Ошибка | Причина | Решение |
|---|---|---|
ERROR_CAPTCHA_UNSOLVABLE |
Отсутствует captchaScript для non-standard реализации |
Добавьте параметр captchaScript с правильной ссылкой |
| Токен не принимается сайтом | Неправильная передача ticket/randstr |
Проверьте, как сайт ожидает получить токен (через callback или форму) |
| Таймаут ожидания | Высокая нагрузка или сложная капча | Увеличьте интервал поллинга или используйте прокси |
| Блокировка по IP | Частые запросы без ротации | Используйте тип задачи TencentTask с вашим прокси |
6.1. Отчёт об ошибках
Если решение не прошло валидацию на целевом сайте, отправьте репорт:
Неверное решение:
GET https://api.2captcha.com/reportbad?key=YOUR_API_KEY&id=TASK_ID
Верное решение (обязательно вместе с reportbad):
GET https://api.2captcha.com/reportgood?key=YOUR_API_KEY&id=TASK_ID
7. Дополнительные ресурсы
- Песочница: включить режим — тестирование запросов без кода
- Документация API: Tencent Captcha — полное описание методов
- Примеры на GitHub: 2captcha/2captcha-node
- Отчёт об ошибках: reportgood/reportbad
- Поддержка: создать тикет
8. Контрольный список
- Получен и проверен API-ключ из личного кабинета 2Captcha
- Извлечён корректный
appIdиз исходного кода целевой страницы - Указан полный
websiteURLстраницы с капчей - Для non-standard реализаций добавлен параметр
captchaScript - Выбран подходящий тип задачи:
TencentTaskProxylessилиTencentTask - Протестирован запрос через песочницу или с малым бюджетом
- Реализована логика применения токена (
ticket+randstr) на целевом сайте - Настроена отправка
reportgood/reportbadдля контроля качества
Заключение
Капча Tencent требует точной передачи параметров appId и websiteURL. Для non-standard реализаций критично указывать параметр captchaScript — его отсутствие часто приводит к ошибке ERROR_CAPTCHA_UNSOLVABLE.
Используйте тип задачи TencentTaskProxyless для стандартных случаев и TencentTask с прокси, если сайт применяет гео-блокировки. Полученный токен (ticket + randstr) передавайте в функцию обратного вызова или в форму целевого сайта согласно его документации.
При возникновении проблем проверяйте актуальность ссылки на скрипт капчи и при необходимости отправляйте отчёты через reportbad/reportgood — это помогает улучшать качество решений и возвращать средства за ошибочные ответы.