Cloudflare: resolvendo Turnstile
Crie a tarefa com o método createTask e obtenha o resultado com o método getTaskResult.
ℹ️O tipo turnstile não requer proxy, então você apenas usa AntiTurnstileTaskProxyLess
O captcha Turnstile é mais uma tentativa de substituir o reCaptcha. Suportamos automaticamente estes subtipos:
- turnstile
- Manualmente
 - Não Interativo
 - Invisível
 
 
Não há necessidade de especificar subtipos durante sua chamada. Ainda não é necessário fornecer seu próprio User-Agent personalizado,
nós ignoraremos este parâmetro.
O tipo de tarefa type é o seguinte:
AntiTurnstileTaskProxyLess
Criar Tarefa
Crie a tarefa com o createTask.
No processo de uso do Turnstile, devemos inserir websiteURL e websiteKey, outros parâmetros são opcionais.
Estrutura do Objeto da Tarefa
| Propriedades | Tipo | Necessário | Descrição | 
|---|---|---|---|
| type | String | Necessário | AntiTurnstileTaskProxyLess | 
| websiteURL | String | Necessário | O endereço da página alvo. | 
| websiteKey | String | Necessário | Chave do site Turnstile. | 
| metadata | Map<String,String> | Opcional | Dados extras do Turnstile. Documentação do Turnstile | 
| metadata.action | String | Opcional | O valor do atributo data-action do elemento Turnstile, se existir. | 
| metadata.cdata | String | Opcional | O valor do atributo data-cdata do elemento Turnstile, se existir. | 
Exemplo de Requisição
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "AntiTurnstileTaskProxyLess",
    "websiteURL": "https://www.yourwebsite.com",
    "websiteKey": "0x4XXXXXXXXXXXXXXXXX",
    "metadata": {
       "action": "login",  //optional
       "cdata": "0000-1111-2222-3333-example-cdata"  //optional
    }
  }
}Exemplo de Resposta
{
  "errorId": 0,
  "status": "idle",
  "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"   // record taskId
}
 Obtendo o Resultado
Use o método getTaskResult para obter os resultados de reconhecimento
Dependendo da carga do sistema, você obterá os resultados no intervalo de 1s a 20s
Exemplo de Requisição
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json{
  "clientKey": "YOUR_API_KEY",
  "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}Exemplo de Resposta
{
  "errorId": 0,
  "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006",
  "status": "ready",
  "errorCode": null,
  "errorDescription": null,
  "solution": {
    "token": "0.mF74FV8wEufAWOdvOak_xFaVy3lqIDel7SwNhw3GgpICSWwTjYfrQB8mRT1dAJJBEoP7N1sESdp6WH9cTS1T0catWLecG3ayNcjwxVtr3hWfS-dmcBGRTx4xYwI64sAVboYGpIyuDBeMIRC3W8dK35v1nDism9xa595Da5VlXKM7hk7pIXg69lodfiftasIkyD_KUGkxBwxrrmz7dBo10-Y5zvro9hD4QKRjOx7DYj9sumnkyYCDx0m4ImDIIkNswfVTWI2V22wlnpHdvMgdtKYgOIIAU28y9gtdrdDkpkH0GHcDyd15sxQGd9VjwhGZA_mpusUKMsEoGgst2rJ3zA.UWfZupqLlGvlATkPo3wdaw.38d55cd0163610d8ce8c42fcff7b62d8981495cc1afacbb2f14e5a23682a4e13",
    "type": "turnstile",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
  }
}Usar Requisição SDK
# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
 
import capsolver
 
# capsolver.api_key = "..."
solution = capsolver.solve({
  "type": "AntiTurnstileTaskProxyLess",
  "websiteURL": "https://www.yourwebsite.com",
  "websiteKey": "0x4XXXXXXXXXXXXXXXXX",
  "metadata": {
	 "action": "login"  # optional
  }
})Exemplo de Código
# pip install requests
import requests
import time
 
api_key = "YOUR_API_KEY"  # your api key of capsolver
site_key = "0x4XXXXXXXXXXXXXXXXX"  # site key of your target site
site_url = "https://www.yourwebsite.com"  # page url of your target site
 
def capsolver():
    payload = {
        "clientKey": api_key,
        "task": {
            "type": 'AntiTurnstileTaskProxyLess',
            "websiteKey": site_key,
            "websiteURL": site_url,
            "metadata": {
                "action": ""  # optional
            }
        }
    }
    res = requests.post("https://api.capsolver.com/createTask", json=payload)
    resp = res.json()
    task_id = resp.get("taskId")
    if not task_id:
        print("Failed to create task:", res.text)
        return
    print(f"Got taskId: {task_id} / Getting result...")
 
    while True:
        time.sleep(1)  # delay
        payload = {"clientKey": api_key, "taskId": task_id}
        res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
        resp = res.json()
        status = resp.get("status")
        if status == "ready":
            return resp.get("solution", {}).get('token')
        if status == "failed" or resp.get("errorId"):
            print("Solve failed! response:", res.text)
            return
 
token = capsolver()
print(token)