Tipos de tarefa
reCAPTCHA v3
Esta página foi traduzida automaticamente da versão em chinês e pode conter erros. Prevalece a versão em chinês.
O reCAPTCHA v3 não tem caixa de seleção nem imagens: a página pontua os visitantes em segundo plano. O YesCaptcha retorna um token (gRecaptchaResponse) que você envia ao site de destino. RecaptchaV3TaskProxyless custa 20 pontos (≈ US$3.00 / 1k) por tarefa e é assíncrono: primeiro createTask, depois getTaskResult a cada 5 segundos. Tarefas com falha ou que expiram têm os pontos reembolsados automaticamente.
https://api.yescaptcha.com/createTaskEndpoint globalhttps://cn.yescaptcha.com/createTaskEndpoint ChinaO corpo da requisição é JSON, autenticado com clientKey. Consulte o resultado no mesmo endpoint em que a tarefa foi criada.
Quando usar
Seção intitulada “Quando usar”- O código-fonte da página contém
grecaptcha.execute(...), ou carregarecaptcha/api.js?render=CHAVE_DO_SITE: reCAPTCHA v3 padrão. - Chama
grecaptcha.enterprise.execute(...)ou carregarecaptcha/enterprise.js: reCAPTCHA v3 Enterprise. UseRecaptchaV3EnterpriseTaskouRecaptchaV3EnterpriseTaskM1.
Como identificar: Identificar o tipo de captcha.
Tipos de tarefa e preços
Seção intitulada “Tipos de tarefa e preços”| Tipo de tarefa | Preço | Modo | Observações |
|---|---|---|---|
RecaptchaV3TaskProxyless | US$3.00 / 1k; 20 pontos/tarefa · ¥20 / 1k | Assíncrono | |
RecaptchaV3TaskProxylessM1 | US$3.75 / 1k; 25 pontos/tarefa · ¥25 / 1k | Assíncrono | |
RecaptchaV3TaskProxylessM1S7 | US$4.50 / 1k; 30 pontos/tarefa · ¥30 / 1k | Assíncrono | Solicita uma pontuação de 0.7; não precisa de parâmetro extra |
RecaptchaV3TaskProxylessM1S9 | US$5.25 / 1k; 35 pontos/tarefa · ¥35 / 1k | Assíncrono | Solicita uma pontuação de 0.9; não precisa de parâmetro extra |
RecaptchaV3EnterpriseTask | US$3.00 / 1k; 20 pontos/tarefa · ¥20 / 1k | Assíncrono | |
RecaptchaV3EnterpriseTaskM1 | US$3.75 / 1k; 25 pontos/tarefa · ¥25 / 1k | Assíncrono |
Os preços em dólares americanos são estimativas com base em US$1 ≈ ¥6.67; as tarefas são cobradas em pontos.
RecaptchaV3TaskProxylesseRecaptchaV3TaskProxylessM1têm os mesmos parâmetros, mas usam rotas diferentes; um pode servir de reserva para o outro.- Se o site de destino exige uma pontuação alta, use
RecaptchaV3TaskProxylessM1S7(0.7) ouRecaptchaV3TaskProxylessM1S9(0.9); não é necessário nenhum parâmetro adicional.
Parâmetros da requisição
Seção intitulada “Parâmetros da requisição”| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
type | string | Sim | Tipo de tarefa; veja "Tipos de tarefa e preços" nesta página |
websiteURL | string | Sim | URL completa da página que exibe o captcha. Use o site em que você vê o captcha, não o domínio do fornecedor do captcha |
websiteKey | string | Sim | A chave do site (sitekey), encontrada no código-fonte da página ou nas requisições de rede; normalmente não muda |
pageAction | string | Não | A action do reCAPTCHA v3; deve corresponder ao valor que a página passa para grecaptcha.execute, ou o token pode ser rejeitado |
pageAction deve ser igual ao action que a página passa em grecaptcha.execute(CHAVE_DO_SITE, {action: '...'}); se estiver errado, o site pode rejeitar o token. Como encontrar: Encontrar os parâmetros do reCAPTCHA.
Exemplo de requisição
Seção intitulada “Exemplo de requisição”{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "RecaptchaV3TaskProxyless", "websiteURL": "https://example.com/login", "websiteKey": "SITE_KEY_OF_THE_PAGE", "pageAction": "login" }}curl -s https://api.yescaptcha.com/createTask \ -H 'Content-Type: application/json' \ -d '{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "RecaptchaV3TaskProxyless", "websiteURL": "https://example.com/login", "websiteKey": "SITE_KEY_OF_THE_PAGE", "pageAction": "login" }}'
# Returns {"errorId":0,"taskId":"..."}; then poll every 5 seconds:curl -s https://api.yescaptcha.com/getTaskResult \ -H 'Content-Type: application/json' \ -d '{"clientKey": "YOUR_CLIENT_KEY", "taskId": "TASK_ID"}'import osimport time
import requests
API = "https://api.yescaptcha.com"CLIENT_KEY = os.environ["YESCAPTCHA_CLIENT_KEY"] # Read the clientKey from an environment variable
def call(method, payload): r = requests.post(f"{API}/{method}", json={"clientKey": CLIENT_KEY, **payload}, timeout=30) data = r.json() if data.get("errorId"): raise RuntimeError(f"{data.get('errorCode')}: {data.get('errorDescription')}") return data
def solve(task): task_id = call("createTask", {"task": task})["taskId"] for _ in range(36): # Poll every 5 seconds, for up to about 3 minutes time.sleep(5) result = call("getTaskResult", {"taskId": task_id}) if result.get("status") == "ready": return result["solution"] raise TimeoutError(task_id)
solution = solve({ "type": "RecaptchaV3TaskProxyless", "websiteURL": "https://example.com/login", "websiteKey": "SITE_KEY_OF_THE_PAGE", "pageAction": "login",})print(solution["gRecaptchaResponse"])const API = 'https://api.yescaptcha.com';const CLIENT_KEY = process.env.YESCAPTCHA_CLIENT_KEY; // Read the clientKey from an environment variable
async function call(method, payload) { const res = await fetch(`${API}/${method}`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ clientKey: CLIENT_KEY, ...payload }), }); const data = await res.json(); if (data.errorId) throw new Error(`${data.errorCode}: ${data.errorDescription}`); return data;}
async function solve(task) { const { taskId } = await call('createTask', { task }); for (let i = 0; i < 36; i++) { // Poll every 5 seconds, for up to about 3 minutes await new Promise((r) => setTimeout(r, 5000)); const result = await call('getTaskResult', { taskId }); if (result.status === 'ready') return result.solution; } throw new Error(`timeout: ${taskId}`);}
const solution = await solve({ type: "RecaptchaV3TaskProxyless", websiteURL: "https://example.com/login", websiteKey: "SITE_KEY_OF_THE_PAGE", pageAction: "login",});console.log(solution.gRecaptchaResponse);Substitua websiteURL, websiteKey e pageAction pelos valores do site de destino.
Resultado
Seção intitulada “Resultado”{ "errorId": 0, "status": "ready", "solution": { "gRecaptchaResponse": "03AGdBq25SxXT-pmSeBXjzScW-EiocHwwpwqtk1QXlJnGnU..." }}| Campo | Tipo | Descrição |
|---|---|---|
gRecaptchaResponse | string | O token a ser enviado ao site de destino. Uso único, válido por cerca de 120 segundos; use-o em até 60 segundos |
Enquanto a tarefa está em andamento, a resposta é {"errorId": 0, "status": "processing"}; consulte novamente após 5 segundos. Trate os erros pelo errorCode, conforme Códigos de erro. Para saber como enviar o token, veja Concluir o reCAPTCHA com um token.
Perguntas frequentes
Seção intitulada “Perguntas frequentes”Por que alguns tokens não são aceitos pelo site?
Seção intitulada “Por que alguns tokens não são aceitos pelo site?”No v3, o site de destino decide com base na pontuação, e pode alterar o limite a qualquer momento; por isso, nem todo token passa. Confirme que pageAction está correto; se o site exige pontuação alta, experimente M1S7 ou M1S9; você também pode comparar com outros tipos semelhantes.
Como preencher o v3 Enterprise?
Seção intitulada “Como preencher o v3 Enterprise?”Da mesma forma que o v3 padrão: websiteURL, websiteKey e pageAction, trocando o tipo para RecaptchaV3EnterpriseTask ou RecaptchaV3EnterpriseTaskM1.
Por quanto tempo o token é válido?
Seção intitulada “Por quanto tempo o token é válido?”É de uso único e válido por cerca de 120 segundos. Recomenda-se enviá-lo em até 60 segundos.
Guias relacionados
Seção intitulada “Guias relacionados”- Identificar o tipo de captcha
- Encontrar os parâmetros do reCAPTCHA (inclui como encontrar
pageAction) - Concluir o reCAPTCHA com um token