TurnstileTask | Cloudflare Challenge
Автоматически поддерживаются все подтипы Turnstile: manual, non-interactive и invisible. Поэтому нет необходимости указывать подтип для обычной капчи.
Ознакомьтесь со всеми тремя вариантами распознавания капчи и выберете наиболее предпочтительный для вас.
Вариант 1 (Turnstile)
Вам требуется решить обычную turstile капчу, как здесь. Обратите внимание, что капча на страницах CloudFlare может выглядеть идентично. Посмотрите в конце статьи как отличить обычный Turnstile от Cloudflare Challenge.
Параметры запроса
type
<string>requiredTurnstileTaskProxyless
websiteURL
<string>requiredАдрес страницы, на которой решается капча
websiteKey
<string>requiredКлюч Turnstile
pageAction
<string>optionalПоле action
, которое можно найти в callback функции для загрузки капчи
data
<string>optionalЗначение поля data можно взять из параметра cData
.
Вариант 2 (CloudFlare)
Вы работаете через браузер, и Вам требуется получить токен для прохождения CloudFlare
Параметры запроса
type
<string>requiredTurnstileTaskProxyless
websiteURL
<string>requiredАдрес страницы, на которой решается капча
websiteKey
<string>requiredКлюч Turnstile
cloudflareTaskType
<string>requiredtoken
pageAction
<string>requiredПоле action
, которое можно найти в callback функции для загрузки капчи. Если используется cloudflareTaskType, то action
обычно “managed“ или “non-interactive“.
userAgent
<string>requiredUser-Agent браузера.
Передавайте только актуальный UA от ОС Windows. Сейчас таковым является: userAgentPlaceholder
data
<string>requiredЗначение поля data можно взять из параметра cData
.
pageData
<string>requiredЗначение поля pageData можно взять из параметра chlPageData
.
apiJsUrl
<string>optionalСтрока, которая содержит ссылку на скрипт капчи.
Прокси для получения токена передавать не обязательно.
Эти параметры находятся в объекте, который передаётся во время создания капчи в функцию window.turnstile.render(el, paramsObj)
. Получить их можно, например, с помощью выполнения JavaScript перед загрузкой остальных скриптов:
(function () {
const obj = {
render: function () {
const { action, cData, chlPageData } = arguments[1];
const params = [
["action", action],
["data", cData],
["pageData", chlPageData],
];
console.table(params)
}
};
Object.defineProperty(window, "turnstile", {
get: () => {
return obj;
},
});
})();
При вызове window.turnstile.render(el, paramsObj)
загружается капча на странице, и при успешном решении вызывается функция callback
, которая передает информацию о решении.
window.turnstile.render(el, paramsObj):
el
: DOM-элемент для вставки в него капчи.
paramsObj
: Объект параметров, содержащий информацию о капче и инструкции для ее решения. Этот объект обычно содержит такие поля, как
sitekey, action, cData, chlPageData, callback.
callback
– функция обратного вызова после успешного прохождения капчи.
Вариант 3 (CloudFlare)
Вы работаете с помощью запросов, и Вам требуются куки cf_clearance
. Обязательно нужны ваши прокси
Параметры запроса
type
<string>requiredTurnstileTask
websiteURL
<string>requiredАдрес страницы, на которой решается капча
websiteKey
<string>requiredКлюч Turnstile(можно передать любую строку)
cloudflareTaskType
<string>optionalcf_clearance
htmlPageBase64
<string>requiredЗакодированная в base64 html страница "Just a moment", которая выдаётся с кодом 403 при обращении к сайту с данной защитой.
Пример получения строки htmlPageBase64:
var htmlContent = document.documentElement.outerHTML;
var htmlBase64 = btoa(unescape(encodeURIComponent(htmlContent)));
console.log(htmlBase64);
userAgent
<string>requiredUser-Agent браузера.
Передавайте только актуальный UA от ОС Windows. Сейчас таковым является версия: userAgentPlaceholder
proxyType
<string>requiredhttp - regular http/https proxy;
https - try this option only if "http" doesn't work (required for some custom proxies);
socks4 - socks4 proxy;
socks5 - socks5 proxy.
proxyAddress
<string>requiredIP адрес прокси IPv4/IPv6. Не допускается:
- использование имен хостов;
- использование прозрачных прокси (там, где можно видеть IP клиента);
- использование прокси на локальных машинах.
proxyPort
<integer>requiredПорт прокси.
proxyLogin
<string>requiredЛогин прокси-сервера.
proxyPassword
<string>requiredПароль прокси-сервера.
Примеры запросов
Вариант 1. Обычный Turnstile:
https://api.capmonster.cloud/createTask
Запрос
{
"clientKey":"API_KEY",
"task":
{
"type":"TurnstileTaskProxyless",
"websiteURL":"http://tsmanaged.zlsupport.com",
"websiteKey":"0x4AAAAAAABUYP0XeMJF0xoy"
}
}
Ответ
{
"errorId":0,
"taskId":407533072
}
Вариант 2. CloudFlare (token)
https://api.capmonster.cloud/createTask
Запрос
{
"clientKey": "API_KEY",
"task": {
"type": "TurnstileTask",
"websiteURL": "https://example.com",
"websiteKey": "0x4AAAAAAADnPIDROrmt1Wwj",
"cloudflareTaskType": "token",
"userAgent":"userAgentPlaceholder",
"pageAction": "managed",
"pageData": "HUHDWUHuhuwfiweh32..uh2uhuhyugYUG=",
"data": "874291f4retD1366"
}
}
Ответ
{
"errorId":0,
"taskId":407533072
}
Вариант 3. CloudFlare (cookie)
https://api.capmonster.cloud/createTask
Запрос
{
"clientKey":"API_KEY",
"task": {
"type":"TurnstileTask",
"websiteURL":"https://example.com",
"websiteKey":"xxxxxxxxxx",
"cloudflareTaskType": "cf_clearance",
"htmlPageBase64": "PCFET0NUWVBFIGh0...vYm9keT48L2h0bWw+",
"userAgent": "userAgentPlaceholder",
"proxyType":"http",
"proxyAddress":"8.8.8.8",
"proxyPort":8080,
"proxyLogin":"proxyLoginHere",
"proxyPassword":"proxyPasswordHere"
}
}