TSPD
Основанный на Cookies метод обхода капчи Tspd.
Типы задач
- TspdTask — мы используем переданный вами прокси
ВАЖНО: Для задач TSPD необходимо использовать прокси со статической сессией. На всех этапах работы — от получения cookies до решения задачи и последующего использования этих cookies — должен сохраняться один и тот же выходной IP-адрес. Изменение IP или сессии между этапами может вызвать ошибки.
Сценарий работы
-
Первый запрос. Скрипт выполняет HTTP-запрос к целевой странице через прокси, используя браузерные заголовки.
-
Получение cookies. Из ответа сервера извлекаются cookies защиты. Если в ответе присутствует cookie
TSPD_101_DID(что означает успешное прохождение защиты) либо формат cookies не соответствует ожидаемому, выполнение останавливается. -
Создание задачи. Скрипт отправляет данные в наш сервис для решения TSPD challenge.
-
Получение решения. Скрипт ожидает завершения обработки задачи через API и получает обновлённые cookies.
-
Финальный запрос. Выполняется повторный запрос к странице с использованием полученных cookies, после чего сервер возвращает обычную HTML-страницу.
Как найти нужные параметры
При отправке GET-запроса на страницу с TSPD-challenge, вы получите HTML, который нужно закодировать в Base64 и передать в параметре htmlPageBase64. Также при первом запросе сервер выдаст специальные cookies (например, TS386a...400d029) — их необходимо передать в tspdCookie, так как они обязательны для корректного решения TSPD и получения ответа от API.
важно: параметры
htmlPageBase64,TspdCookieдинамические. Извлекайте их непосредственно перед отправкой задачи, иначе решение может не пройти.
Обратите внимание:
Если сервер возвращает cookies в одном из следующих форматов (3–4 строки):
TS386a400d029=082670...87599c;
TS386a400d029=082670...40a8ea3;
TS386a400d078=082670...b4cbe2c;
TSd2153684027=082670...4415a6
или
TS386a400d029=08777...83ff9,
TS386a400d029=08777...fb459e,
TSd2153684027=08777...f0ad368
или
TS014d0691=01fef...1244b,
TS01fe94e8=01fef...9ed38,
TSafd868f7027=082670...a7ea7c
и при этом отсутствует cookie TSPD_101_DID, это означает, что запрос был перехвачен системой защиты и вместо обычного ответа была выдана страница блокировки (TSPD challenge).
В такой ситуации необходимо:
- Передать полученные cookies в наш сервис,
- Дождаться завершения решения задачи.
- Использовать обновлённый набор cookies для всех последующих запросов.
Спецификация для типа задачи TspdTask
| Свойство | Тип | Обязателен | Описание |
|---|---|---|---|
| type | Строка | Да | Тип задачи: TspdTask |
| websiteURL | Строка | Да | Полный URL-адрес целевой веб-страницы, на которую загружается капча |
| TspdCookie | Строка | Да | Cookies, полученные на странице Tspd challenge |
| htmlPageBase64 | Строка | Да | Полный HTML страницы с Tspd challenge в base64 |
| proxyType | Строка | Да | Тип прокси: http socks4 socks5 |
| proxyAddress | Строка | Да | IP-адрес прокси-сервера или имя хоста |
| proxyPort | Число | Да | Порт прокси-сервера |
| proxyLogin | Строка | Нет | Логин для аутентификации на прокси-сервере |
| proxyPassword | Строка | Нет | Пароль для аутентификации на прокси-сервере |
| userAgent | Строка | Нет | User-Agent браузера, с которым открывается страница |
Примеры запросов
Метод: createTask
Эндпоинт API: https://api.2captcha.com/createTask
Пример запроса TspdTask
json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "TspdTask",
"websiteUrl": "https://example.com/login",
"TspdCookie": "TS386a400d029=082670...010245; TS386a400d078=082670...dbb3b0c",
"htmlPageBase64": "PCFET0NUWVBFIGh0bWw+...",
"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"
}
}
Пример ответа
Метод: getTaskResult
Эндпоинт API: https://api.2captcha.com/getTaskResult
json
{{
"errorId": 0,
"status": "ready",
"solution": {
"Domains": {
"example.com": {
"Cookies": {
"TS386a400d029": "082670...01a06e",
"TS386a400d078": "082670...dbb3b0c",
"Tspd_101_DID": "082670...1d53f"
}
}
}
}
}