Guia
Tarefa (Token)
reCAPTCHA v3

ReCaptchaV3: resolvendo reCAPTCHA v3

DICA

Crie a tarefa com o método createTask e obtenha o resultado com o método getTaskResult.

Criar Tarefa

Crie uma tarefa com o método createTask.

Antes de criar uma tarefa, se você precisar usar tokens em ferramentas de automação como playwright e puppeteer, talvez precise encontrar suas funções de callback. Referência:

Estrutura do Objeto da Tarefa

AVISO

Se você não souber como definir os parâmetros, use a Extensão CapSolver para obter automaticamente os parâmetros necessários.


Se você descobrir que o token v3 é inválido, use a Extensão CapSolver para obter a configuração JSON e envie-a para o nosso serviço de atendimento ao cliente para configuração. Após a configuração, isso melhorará muito a pontuação do token.

Versão da tarefa com alta pontuação (M1)

M1 é o tipo de tarefa com alta pontuação do reCAPTCHA v3. É muito mais caro do que a versão padrão.

  • Entre em contato conosco antes de usar o M1
  • Necessidade de adaptações para sites específicos
  • Pode funcionar bem apenas em alguns sites

Lista de preços

VersãoTipo de tarefapreço
Edição padrão V3ReCaptchaV3Task
ReCaptchaV3TaskProxyLess
$1/k
Edição Empresarial V3ReCaptchaV3EnterpriseTask
ReCaptchaV3EnterpriseTaskProxyLess
$3/k
Pontuação Standard M1ReCaptchaV3M1Task
ReCaptchaV3M1TaskProxyLess
$3/k
Pontuação Enterprise M1ReCaptchaV3EnterpriseM1Task
ReCaptchaV3EnterpriseM1TaskProxyLess
$10/k
O tipo de tarefa M1 é um tipo de tarefa de alto custo. Confirme o preço e as necessidades de adaptação ao serviço de atendimento ao cliente antes de usá-lo para produção.
PropriedadesTipoObrigatórioDescrição
typeStringObrigatórioEdição padrão
ReCaptchaV3Task
ReCaptchaV3TaskProxyLess
ReCaptchaV3EnterpriseTask
ReCaptchaV3EnterpriseTaskProxyLess

Alta distribuição (M1)
ReCaptchaV3M1Task
ReCaptchaV3M1TaskProxyLess
ReCaptchaV3EnterpriseM1Task
ReCaptchaV3EnterpriseM1TaskProxyLess
websiteURLStringObrigatórioO endereço do site com recaptcha.
websiteKeyStringObrigatórioChave do site Recaptcha.
proxyStringOpcionalSaiba Como usar proxies.
pageActionStringOpcionalPara ReCaptchaV3: Você pode encontrar o valor do parâmetro action procurando por grecaptcha.execute
enterprisePayloadObjectOpcionalPara a versão enterprise, procure por grecaptcha.enterprise.render e passe o parâmetro s.
isSessionBoolOpcionalModo de sessão, quando habilitado, retornará um valor recaptcha-ca-t, que é usado como um cookie. Geralmente aparece no v3.

Nota: Alguns sites exigem um valor recaptcha-ca-e, que geralmente aparece no v2. Se este valor estiver presente, ele será retornado automaticamente sem quaisquer configurações de parâmetro adicionais.
apiDomainStringOpcionalO nome de domínio para carregar o captcha. Geralmente, este parâmetro não precisa ser passado.
• http://www.google.com/
• http://www.recaptcha.net/

Exemplo de Requisição

POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "ReCaptchaV2Task",
    "websiteURL": "https://www.google.com/recaptcha/api2/demo",
    "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
    "enterprisePayload": {
      "s": "SOME_ADDITIONAL_TOKEN" // Optional
    },
    "isInvisible": false, // Optional
    "pageAction": "submit", // Optional
    "apiDomain": "", // Optional
    "proxy": "http:ip:port:user:pass", // socks5:ip:port:user:pass, Optional
  }
}

Depois de enviar a tarefa para nós, você deverá receber um ‘taskId’ na resposta, se for bem-sucedido. Por favor, leia errorCode: lista completa de erros se você não recebeu o ID da tarefa.

Exemplo de Resposta

{
    "errorId": 0,
    "errorCode": "",
    "errorDescription": "",
    "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}

Obtendo Resultados

Depois de ter o taskId, você precisa enviar o taskId para recuperar a solução. A estrutura da resposta é explicada em getTaskResult.

Dependendo da carga do sistema, você obterá os resultados no intervalo de 1s a 10s.

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,
    "errorCode": null,
    "errorDescription": null,
    "solution": {
        "userAgent": "xxx", // Agente de Usuário
        "secChUa": "xxx", // Sec-Ch-Ua
        "createTime": 1671615324290, // O horário de criação do token
        "gRecaptchaResponse": "3AHJ......", // token
        "recaptcha-ca-t": "AbEM......", // Alguns sites v3 possuem modo de sessão. Após habilitar isSession, este parâmetro será retornado e usado como um cookie.
        "recaptcha-ca-e": "Abp_......" // Alguns sites v2 possuem este parâmetro, que é usado como um cookie. Se houver tal valor, ele será retornado automaticamente.
    },
    "status": "ready"
}

Usar Requisição SDK

# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
 
import capsolver
 
# capsolver.api_key = "..."
solution = capsolver.solve({
    "type": "ReCaptchaV3TaskProxyLess",
    "websiteURL": "https://www.google.com",
    "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_kl-",
    "pageAction": "login",
})

Código de Exemplo

# pip install requests
import requests
import time
 
# TODO: set your config
api_key = "YOUR_API_KEY"  # your api key of capsolver
site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_kl-"  # site key of your target site
site_url = "https://www.google.com"  # page url of your target site
 
 
def capsolver():
    payload = {
        "clientKey": api_key,
        "task": {
            "type": 'ReCaptchaV3TaskProxyLess',
            "websiteKey": site_key,
            "websiteURL": site_url,
            "pageAction": "login",
        }
    }
    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('gRecaptchaResponse')
        if status == "failed" or resp.get("errorId"):
            print("Solve failed! response:", res.text)
            return
 
 
token = capsolver()
print(token)