O Anti-Captcha foi um dos primeiros a entrar no mercado de resolução de CAPTCHA. Ele oferece uma API JSON personalizada e ampla cobertura do tipo CAPTCHA. Mas os desenvolvedores encontram limitações à medida que os sites adotam métodos de proteção mais recentes — pilha completa da Cloudflare, BLS CAPTCHAs e fluxos de trabalho reCAPTCHA v3 com pontuação crítica.
Veja por que as equipes mudam para CaptchaAI.
Os principais pontos problemáticos
1. Cobertura Cloudflare Turnstile em staging
O Anti-Captcha suporta tokens Turnstile, mas não lida com páginas Cloudflare Turnstile em staging completas ou desafios JS:
| Tipo Cloudflare | Anticaptcha | CaptchaAI |
|---|---|---|
| Torniquete (gerenciado) | ✅ | ✅ 100% |
| Torniquete (invisível) | Parcial | ✅ |
| Cloudflare Turnstile em staging | ❌ | ✅ |
| Desafio JS | ❌ | ✅ |
Muitos alvos de raspagem agora usam páginas Cloudflare Turnstile em staging (não apenas widgets Turnstile). Os usuários do Anti-Captcha são bloqueados; Os usuários do CaptchaAI não.
2. Diferenças na abordagem da API
O Anti-Captcha usa uma API personalizada baseada em tarefas JSON. CaptchaAI usa o formato compatível com 2Captcha amplamente adotado:
# Anti-Captcha — custom JSON format
import requests
resp = requests.post("https://api.anti-captcha.com/createTask", json={
"clientKey": "ANTICAPTCHA_KEY",
"task": {
"type": "RecaptchaV2TaskProxyless",
"websiteURL": "https://example.com",
"websiteKey": "SITE_KEY",
}
})
task_id = resp.json()["taskId"]
# Poll with different endpoint and format
result = requests.post("https://api.anti-captcha.com/getTaskResult", json={
"clientKey": "ANTICAPTCHA_KEY",
"taskId": task_id,
})
# CaptchaAI — standard 2Captcha-compatible format
import requests
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": "YOUR_API_KEY",
"method": "userrecaptcha",
"googlekey": "SITE_KEY",
"pageurl": "https://example.com",
"json": 1,
})
task_id = resp.json()["request"]
# Standard polling
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": "YOUR_API_KEY",
"action": "get",
"id": task_id,
"json": 1,
})
O formato 2Captcha é suportado por centenas de ferramentas, bibliotecas e estruturas. A migração para CaptchaAI requer alterações mínimas de código para equipes que já usam wrappers compatíveis com 2Captcha.
3. Suporte BLS CAPTCHA
A automação de portais governamentais, sistemas de agendamento de vistos e coleta de dados trabalhistas exigem a solução BLS CAPTCHA:
# CaptchaAI — BLS at 100% accuracy
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": "YOUR_API_KEY",
"method": "bls",
"pageurl": "https://bls-portal.example.com",
"sitekey": "BLS_SITE_KEY",
"json": 1,
})
O Anti-Captcha não possui método BLS. As equipes que precisam de acesso ao portal governamental devem mudar.
4. Qualidade da pontuação reCAPTCHA v3
| Provedor | Pontuação média v3 | Controle de pontuação |
|---|---|---|
| Anticaptcha | 0,3-0,5 | Limitado |
| CaptchaAI | 0,7-0,9 | Parâmetro score_qa |
Pontuações baixas da v3 acionam a detecção de bot. A abordagem assistida por humanos do Anti-Captcha produz pontuações variáveis. O mecanismo de IA do CaptchaAI gera pontuações consistentemente altas.
5. Precisão do GeeTest
| Versão GeeTest | Anticaptcha | CaptchaAI |
|---|---|---|
| GeeTest v3 | 85-90% | 100% |
| GeeTest v4 | 80-85% | valor alto em amostra interna |
Comparação de recursos
| Recurso | Anticaptcha | CaptchaAI |
|---|---|---|
| reCAPTCHA v2 | ✅ | ✅ |
| reCAPTCHA v3 | ✅ (pontuações baixas) | ✅ Controle de pontuação |
| reCAPTCHA Empresarial | ✅ | ✅ |
| ReCAPTCHA invisível | ✅ | ✅ |
| Torniquete | ✅ | ✅ 100% |
| Cloudflare Turnstile em staging | ❌ | ✅ |
| GeeTest v3 | ✅ | ✅ 100% |
| BLS | ❌ | ✅ 100% |
| Imagem/OCR | ✅ | ✅ Mais de 27.500 tipos |
| Formato API | JSON personalizado | Compatível com 2Captcha |
| Suporte de proxy | ✅ | ✅ |
| Retorno de chamada | ✅ | ✅ |
Comparação de velocidade
| Tipo CAPTCHA | Anticaptcha | CaptchaAI |
|---|---|---|
| reCAPTCHA v2 | 15-45s | 10-20 s |
| reCAPTCHA v3 | 10-30s | 5-15s |
| Imagem CAPTCHA | 5-15s | 2-5s |
| Torniquete | 10-30s | 3-10s |
| GeeTest v3 | 15-40 s | <12s |
Caminho de migração
Os formatos de API são diferentes, portanto, a migração requer a atualização do tratamento de request/response. Aqui está um wrapper que suporta ambos durante a transição:
import requests
import time
class CaptchaSolver:
"""Unified solver — supports Anti-Captcha and CaptchaAI."""
def __init__(self, provider="captchaai", api_key="YOUR_API_KEY"):
self.provider = provider
self.api_key = api_key
def solve_recaptcha_v2(self, sitekey, pageurl):
if self.provider == "captchaai":
return self._solve_captchaai("userrecaptcha", sitekey, pageurl)
else:
return self._solve_anticaptcha(sitekey, pageurl)
def _solve_captchaai(self, method, sitekey, pageurl):
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": self.api_key,
"method": method,
"googlekey": sitekey,
"pageurl": pageurl,
"json": 1,
})
task_id = resp.json()["request"]
for _ in range(60):
time.sleep(5)
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": self.api_key, "action": "get",
"id": task_id, "json": 1,
})
data = result.json()
if data["request"] != "CAPCHA_NOT_READY":
return data["request"]
raise TimeoutError("Solve timeout")
def _solve_anticaptcha(self, sitekey, pageurl):
resp = requests.post("https://api.anti-captcha.com/createTask", json={
"clientKey": self.api_key,
"task": {
"type": "RecaptchaV2TaskProxyless",
"websiteURL": pageurl,
"websiteKey": sitekey,
},
})
task_id = resp.json()["taskId"]
for _ in range(60):
time.sleep(5)
result = requests.post(
"https://api.anti-captcha.com/getTaskResult",
json={"clientKey": self.api_key, "taskId": task_id},
)
data = result.json()
if data["status"] == "ready":
return data["solution"]["gRecaptchaResponse"]
raise TimeoutError("Solve timeout")
Use provider="captchaai" para novos projetos. Migre projetos existentes alterando o parâmetro do construtor.
Solução de problemas
| Problema | Causa | Correção |
|---|---|---|
| Formato de API diferente | Anti-Captcha usa tarefas JSON | Atualize o formato da solicitação conforme os exemplos acima |
Campo method ausente |
Anti-Captcha usa type na tarefa |
Mude para method=userrecaptcha para CaptchaAI |
| Formato de votação errado | Ponto final de resultado diferente | Use GET para /res.php com action=get |
| Tipo de tarefa não encontrado | Os nomes das tarefas anti-Captcha são diferentes | Use nomes de métodos CaptchaAI: userrecaptcha, turnstile, bls |
Perguntas frequentes
A migração é difícil porque os formatos de API são diferentes?
O formato da API é diferente, mas direto. A lógica principal (enviar pesquisa → → obter resultado) é a mesma. A maioria das migrações leva de 15 a 30 minutos para alterações de código.
Posso usar bibliotecas wrapper Anti-Captcha com CaptchaAI?
Não diretamente — os formatos da API são diferentes. No entanto, CaptchaAI é compatível com qualquer biblioteca wrapper 2Captcha, que está mais amplamente disponível.
O CaptchaAI oferece suporte ao encaminhamento de proxy do Anti-Captcha?
Sim. CaptchaAI suporta parâmetros de proxy (proxy, proxytype) no formato de solicitação padrão.
Guias Relacionados
Atualize sua resolução de CAPTCHA -experimente CaptchaAI grátiscom mais adequado suporte para Cloudflare e BLS.