O Cloudflare Turnstile parece uma caixa de seleção, mas não é um CAPTCHA no sentido antigo — geralmente não há nada para resolver. Ele roda algumas centenas de milissegundos de JavaScript no seu navegador, pontua o quão real esse navegador parece e emite um token. Se o seu scraper não conseguir rodar esse JS de forma convincente, você nunca obtém um token válido, e toda requisição que precisa de um volta como um desafio.
É por isso que as correções de scraping habituais não fazem nada pelo Turnstile. Rotacionar proxies, definir cabeçalhos, até enviar um fingerprint TLS de navegador perfeito — nada disso importa se o desafio JavaScript nunca for executado. Este guia explica o que o Turnstile realmente mede e as formas realistas de passar por ele em 2026.
O Turnstile é uma "prova de navegador", não uma "prova de humano". Quando o widget carrega, ele silenciosamente roda uma bateria de verificações e as alimenta em uma pontuação:
requests, httpx, curl) não consegue produzir um token de jeito nenhum.navigator.webdriver, artefatos de CDP, plugins ausentes ou falsos, e os sinais de CDP/headless que sobrevivem mesmo depois de você remendar as flags óbvias.O token que você recebe é vinculado ao seu IP e a uma janela de tempo curta. Então, mesmo um token válido "emprestado" de outro lugar falha se você depois o usar a partir de uma saída diferente.
Os proxies movem exatamente um desses sinais: a reputação de IP. Isso importa — um ASN residencial limpo pode levantar uma pontuação no limite acima da linha — mas não consegue fabricar um token. Se você está atingindo o Turnstile com um cliente HTTP, nenhum proxy resolve, porque não há navegador para rodar o desafio. O proxy é necessário, mas não suficiente.
O caminho mais confiável é realmente executar o desafio em um navegador real e bem disfarçado — Playwright ou Puppeteer com remendos anti-detecção, ou um navegador voltado para stealth. O token é gerado naturalmente, no seu IP, em um ambiente real:
from playwright.sync_api import sync_playwright
proxy = {"server": "socks5h://us.jibaoproxy.com:913",
"username": "USERNAME", "password": "PASSWORD"}
with sync_playwright() as p:
browser = p.chromium.launch(headless=False, proxy=proxy)
page = browser.new_page()
page.goto("https://target.site")
page.wait_for_timeout(4000) # let Turnstile run and settle
# the cf token is now in the form; submit / read it as the site expects
token = page.eval_on_selector(
"input[name='cf-turnstile-response']", "el => el.value")
print("token:", token[:20], "...")
browser.close()
Rode em modo headful (ou uma build headless real), mantenha o ambiente do navegador consistente e roteie-o por uma saída residencial para que a pontuação do IP concorde com a pontuação do navegador. As duas precisam combinar — um navegador perfeito em um IP de datacenter ainda pontua mal.
Serviços como 2Captcha, CapSolver e outros vão rodar o desafio para você e retornar um token via API. Eles são úteis em escala, mas com dois pontos que pegam as pessoas de surpresa:
O Turnstile geralmente roda em um modo "gerenciado" não interativo: se a sua pontuação for alta o suficiente, ele emite um token sem caixa de seleção e sem atrito. O "bypass" mais barato muitas vezes é simplesmente parecer real o bastante para nunca ser desafiado — um fingerprint de navegador limpo mais um IP residencial com boa reputação de ASN. Coloque a pontuação acima do limiar e o Turnstile o deixa passar silenciosamente.
navigator.webdriver e os indícios de CDP, ou a pontuação fica baixa.Novos usuários recebem 500MB ao se cadastrar, mais um bônus na primeira recarga. Oferta por tempo limitado.