Temu Captcha de Grade
Visão Geral
O Temu Captcha de Grade é um captcha de seleção de grade: a página mostra uma grade de blocos e o solucionador deve retornar quais células clicar (índices com base em 0, por linha: da esquerda para a direita, de cima para baixo).
🔲
O campo task.image codifica a imagem da grade como uma única string Base64. Nenhum campo other adicional é necessário.

1. Criar Tarefa
Formato de Envio de Imagem
Imagem da grade

Requisição
POST https://api.achicaptcha.com/createTask
Parâmetros
| Nome do Parâmetro | Tipo de Dado | Obrigatório? | Descrição |
|---|---|---|---|
clientKey | string | sim | Chave de API |
task.type | string | sim | GridCaptcha |
task.subType | string | sim | temu |
task.image | string | sim | Imagem da grade codificada em Base64 |
Exemplo de Requisição
POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "GridCaptcha",
"subType": "temu",
"image": "BASE64_GRID_IMAGE"
}
}Resposta
Quando bem-sucedido, o servidor retorna errorId = 0 e taskId
{
"errorId": 0,
"taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}2. Obter Resultado
Requisição
POST https://api.achicaptcha.com/getTaskResult
Parâmetros
| Nome do Parâmetro | Tipo de Dado | Obrigatório? | Descrição |
|---|---|---|---|
clientKey | string | sim | Chave de API |
taskId | string | sim | TaskId obtido na etapa (1) |
Exemplo de Requisição
POST /getTaskResult HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}Resposta
{
"errorId": 0,
"status": "ready",
"solution": {
"click": "0,2,5"
}
}solution.click é uma string separada por vírgulas de índices de célula com base em 0 (por linha) para clicar na grade.
Explicação de Status
errorId = 0estatus = ready: Resolvido com sucesso, leia os índices de célula emsolution.clickerrorId = 0estatus = processing: Ainda resolvendo, aguarde 2 segundos e consulte novamenteerrorId > 0: Erro de sistema, verifiqueerrorCodeeerrorDescription
Exemplos de Integração
import requests
import base64
import time
def solve_temu(grid_path, api_key='YOUR_API_KEY'):
with open(grid_path, 'rb') as f:
grid_b64 = base64.b64encode(f.read()).decode()
# Passo 1: Criar tarefa
create_resp = requests.post(
'https://api.achicaptcha.com/createTask',
json={
'clientKey': api_key,
'task': {
'type': 'GridCaptcha',
'subType': 'temu',
'image': grid_b64
}
}
)
result = create_resp.json()
if result['errorId'] != 0:
raise Exception(result['errorDescription'])
task_id = result['taskId']
# Passo 2: Consultar resultado
while True:
time.sleep(2)
poll_resp = requests.post(
'https://api.achicaptcha.com/getTaskResult',
json={'clientKey': api_key, 'taskId': task_id}
)
result = poll_resp.json()
if result['errorId'] != 0:
raise Exception(result['errorDescription'])
if result['status'] == 'ready':
return result['solution']['click'] # ex. "0,2,5"
# Uso
indices = solve_temu('grid.jpg', 'YOUR_API_KEY')
print('Células para clicar:', indices)Códigos de Erro Comuns
| Código de Erro | Descrição | Notas |
|---|---|---|
| 0 | success | Sucesso |
| 1 | processing | Processando |
| 2 | missing required fields | Campos obrigatórios ausentes, verifique os parâmetros |
| 3 | task not supported | Tipo de tarefa não suportado |
| 4 | task creation failed | Falha na criação da tarefa |
| 5 | client key does not exist | Chave de API não existe, verifique a chave de API |
| 6 | insufficient account balance | Saldo de conta insuficiente, adicione mais créditos |
| 7 | task failed, please create a new task | Tarefa falhou, crie uma nova tarefa |
| 8 | task ID does not exist | ID da tarefa não existe |
Melhores Práticas
Para melhores resultados ao usar a API Achicaptcha para o Temu Captcha de Grade, siga estes princípios:
1. Codificação de Imagem
- Envie apenas a imagem da grade como uma única string Base64
- Não inclua o prefixo
data:image/...;base64,— apenas Base64 puro - Certifique-se de que a imagem está completamente carregada e codificada antes de enviar
2. Intervalo de Consulta
- Aguarde pelo menos 2 segundos entre as verificações de resultado
- Não sobrecarregue a API com requisições consecutivas
- Defina um tempo limite para evitar loops infinitos (recomendado: 60 segundos)
3. Processamento de Resultados
solution.clické uma string separada por vírgulas de índices de célula com base em 0 (por linha, da esquerda para a direita, de cima para baixo)- Divida por
,e converta para inteiros antes de clicar nas células da grade correspondentes
4. Lógica de Tentativa Novamente
- Implemente tentativas novamente para erros temporários como
ERROR_NO_SLOT_AVAILABLE - Use backoff exponencial ao tentar novamente
- Limite o número máximo de tentativas
5. Segurança da Chave de API
- Não codifique sua chave de API no código-fonte
- Use variáveis de ambiente ou um gerenciador de segredos
- Nunca exponha a chave de API no lado do cliente
Links úteis: