🎯 Um navegador em nuvem personalizável e anti-detecção alimentado por Chromium desenvolvido internamente, projetado para rastreadores web e agentes de IA. 👉Experimente agora
De volta ao blog

Como Resolver o Cloudflare Com Go (chromedp + Scrapeless)

Daniel Kim
Daniel Kim

Lead Scraping Automation Engineer

09-Jul-2026

Resumo:

  • A Cloudflare classifica o navegador, não o visitante. Ela lê a consistência da impressão digital, sinais comportamentais e o IP de saída, então configura um cookie cf_clearance para um navegador que confia — portanto, limpar isso em Go significa ser um navegador confiável, não resolver um quebra-cabeça.
  • Um stack de navegador Go local falha nessa classificação em três eixos: o indicador navigator.webdriver, uma impressão digital padrão em modo headless e um IP de saída de datacenter. Manter evasões manualmente é um exercício sem fim.
  • O Scrapeless Scraping Browser limpa o desafio durante a renderização — um Chromium realmente desenvolvido internamente, uma impressão digital consistente por sessão e saída residencial em mais de 195 países, acessível através de um único endpoint WebSocket.
  • Seu Go permanece o chromedp padrão. Aponte chromedp.NewRemoteAllocator para o endpoint Scrapeless, aguarde o conteúdo pós-desafio e leia a página — a única mudança é a URL de conexão.
  • Verificado ao vivo: uma sessão Go chromedp através do navegador em nuvem limpou a página de desafio da Cloudflare, leu o marcador de sucesso Você contornou o desafio da Cloudflare! :D, e recebeu um cookie cf_clearance.
  • Gratuito para começar. Novas contas Scrapeless incluem tempo de execução gratuito do Scraping Browser — inscreva-se em app.scrapeless.com.

Um desafio da Cloudflare não é um CAPTCHA de imagem que você decodifica. Ele roda em segundo plano e classifica o navegador que carregou a página — se a impressão digital é internamente consistente, se os sinais de interação parecem humanos e se o IP de saída tem uma reputação limpa. Quando a pontuação é aprovadas, a Cloudflare configura um cookie cf_clearance e a página real é carregada. Quando não, você recebe uma tela intersticial em vez de conteúdo.

Isso reformula a tarefa em Go. Não há resposta a ser enviada — o trabalho é apresentar um navegador que a Cloudflare já confia. Um Chromium headless local controlado pelo chromedp não consegue: ele anuncia automação através da propriedade navigator.webdriver, é enviado com fontes e comportamentos de canvas padrão headless, e sai de um IP que os serviços de reputação já conhecem. Você pode manter suas próprias evasões e continuar a mantê-las enquanto o Chromium e os detectores evoluem. Este guia toma o caminho mais curto: controle o Scrapeless Scraping Browser a partir do chromedp padrão, assim a impressão digital, o comportamento e o IP de saída são geridos no servidor e o desafio é limpo durante uma renderização normal.


O que a Cloudflare realmente verifica

A própria documentação da Cloudflare descreve um passo de verificação que roda sem interromper o visitante. Na prática, ela classifica três coisas e concede um cookie cf_clearance — um padrão de cookie HTTP — quando são aprovadas:

O que a Cloudflare lê Por que um navegador Go local falha
Consistência da impressão digital padrões headless e a flag webdriver contradizem um Chrome real
Sinais comportamentais temporização roteirizada sem uma superfície de navegador coerente
Reputação do IP de saída IPs de datacenter têm pontuação pior do que os residenciais

Um navegador coerente e confiável importa mais do que qualquer evasão única — é por isso que mover os três elementos para o lado do servidor é mais durável do que correções manuais.

Por que Scrapeless Scraping Browser

O Scrapeless Scraping Browser é um navegador em nuvem personalizável e anti-detecção, projetado para crawlers da web e agentes de IA. Para a Cloudflare especificamente, ele traz:

  • Um Chromium realmente desenvolvido internamente que executa o JavaScript do desafio exatamente como o Chrome, então ele resolve em vez de travar.
  • Uma impressão digital consistente por sessão — sem indicadores de navigator.webdriver, sem padrões headless vazando.
  • Saída residencial em mais de 195 países — a Cloudflare classifica o IP de saída, e uma região residencial é lida como limpa onde um IP de datacenter não é.
  • Persistência de sessão para que uma concessão de cf_clearance possa ser reutilizada em solicitações dentro da mesma sessão.
  • Uma superfície de conexão — cada opção é um parâmetro de consulta no mesmo endpoint WebSocket.

Obtenha sua chave de API no plano gratuito em app.scrapeless.com.


Pré-requisitos

  • Um toolchain Go (Go 1.21 ou mais recente)
  • github.com/chromedp/chromedp e github.com/chromedp/cdproto
  • Uma conta Scrapeless e chave de API — inscreva-se em app.scrapeless.com

Detalhes de Conexão

Os detalhes de conexão completos estão na documentação do Scraping Browser.


Instalação

Baixe o chromedp para o seu módulo. Você se conecta a um navegador remoto, portanto, nenhum Chrome local é necessário.

bash Copy
go get github.com/chromedp/chromedp
go get github.com/chromedp/cdproto
export SCRAPELESS_API_KEY=seu_token_api_aqui   # chave grátis em https://app.scrapeless.com

Conectar e limpar o desafio

O chromedp se conecta a um navegador remoto com NewRemoteAllocator. Passe o ponto final do Scrapeless com chromedp.NoModifyURL para que o chromedp use a URL do WebSocket como está, e então aguarde o conteúdo pós-desafio. O desafio é resolvido durante a renderização — não há uma chamada de solução separada.

Nota: executar isso requer uma ferramenta Go com os módulos do chromedp instalados. Este bloco foi verificado ao vivo contra o navegador em nuvem Scrapeless; adicione sua chave API e execute com go run para reproduzir.

go Copy
package main

import (
	"context"
	"fmt"
	"net/url"
	"os"
	"time"

	"github.com/chromedp/cdproto/network"
	"github.com/chromedp/chromedp"
)

func main() {
	q := url.Values{}
	q.Set("token", os.Getenv("SCRAPELESS_API_KEY"))
	q.Set("sessionTTL", "180")
	q.Set("proxyCountry", "US")
	endpoint := "wss://browser.scrapeless.com/api/v2/browser?" + q.Encode()
	target := "https://www.scrapingcourse.com/cloudflare-challenge"

	allocCtx, cancel := chromedp.NewRemoteAllocator(context.Background(), endpoint, chromedp.NoModifyURL)
	defer cancel()
	ctx, cancel2 := chromedp.NewContext(allocCtx)
	defer cancel2()
	ctx, cancel3 := context.WithTimeout(ctx, 120*time.Second)
	defer cancel3()

	var cleared string
	var cookies []*network.Cookie
	err := chromedp.Run(ctx,
		chromedp.Navigate(target),
		chromedp.WaitVisible("#challenge-title", chromedp.ByID),
		chromedp.Text("#challenge-title", &cleared, chromedp.ByID),
		chromedp.ActionFunc(func(ctx context.Context) error {
			c, err := network.GetCookies().Do(ctx)
			cookies = c
			return err
		}),
	)
	if err != nil {
		fmt.Println("erro:", err)
		os.Exit(1)
	}

	hasClearance := false
	for _, c := range cookies {
		if c.Name == "cf_clearance" {
			hasClearance = true
		}
	}
	fmt.Println("limpo:", cleared)
	fmt.Println("cf_clearance:", hasClearance)
}

Uma execução ao vivo deste programa imprimiu limpo: Você ignorou o desafio do Cloudflare! :D e cf_clearance: true — chromedp padrão, proveniente do navegador em nuvem.

Obtenha sua chave API no plano gratuito: app.scrapeless.com

Fixar a região para uma limpeza confiável

O Cloudflare avalia o IP de saída, então fixe proxyCountry a uma região residencial. Altere para qualquer código de país ISO. A especificação W3C WebDriver requer que a automação em conformidade exponha a flag webdriver; o navegador em nuvem não a carrega, então um IP limpo tem uma impressão digital limpa ao lado.

go Copy
q := url.Values{}
q.Set("token", os.Getenv("SCRAPELESS_API_KEY"))
q.Set("sessionTTL", "180")
q.Set("proxyCountry", "US") // ou "DE", "JP", "QUALQUER"

Um scraper local chromedp é ótimo até que o Cloudflare comece a avaliar o navegador. Então a impressão digital headless, a flag webdriver, e o IP do datacenter falham em diferentes verificações, e a intersticial substitui o conteúdo. Estes são problemas de impressão digital, comportamento e IP — os três que o navegador em nuvem lida no lado do servidor. Conectar-se ao Scrapeless entrega-os a uma sessão gerenciada enquanto suas ações chromedp permanecem padrão.


O que você recebe de volta

A sessão se comporta como qualquer sessão chromedp — Navigate, WaitVisible, Text, e CDP network.GetCookies funcionam. Algumas observações honestas ao limpar o Cloudflare pelo navegador em nuvem:

  • navigator.webdriver está ausente, então a primeira verificação que o Cloudflare executa lê como um verdadeiro Chrome.
  • O IP de saída corresponde a proxyCountry — uma região residencial limpa de forma muito mais confiável do que um IP de datacenter.
  • cf_clearance está presente após uma passagem — reutilize a mesma sessão para manter a autorização em requisições subsequentes.
  • Aqueça a sessão para páginas teimosas — carregue a homepage do site primeiro na mesma sessão antes da página protegida, para que a superfície de comportamento pareça uma visita normal.

Conclusão: limpe o Cloudflare, mantenha seu Go

Limpar o Cloudflare em Go não se trata de decifrar um desafio — trata-se de apresentar um navegador em que o Cloudflare confia. O Scrapeless Scraping Browser lida com as três coisas que ele pontua (impressão digital, comportamento, IP de saída) no lado do servidor, de modo que seu código chromedp muda apenas sua URL de conexão. Fixe proxyCountry a uma região residencial, aguarde o conteúdo pós-desafio e leia cf_clearance para confirmar a passagem. Para usar o mesmo navegador em nuvem a partir do Python, consulte o guia de scraper do Scrapling e compare planos na página de preços do Scrapeless.


Pronto para Construir Seu Pipeline de Limpeza do Cloudflare?

Junte-se à nossa comunidade para reivindicar um plano gratuito e conectar-se com desenvolvedores que fazem scraping de sites protegidos pelo Cloudflare: Discord · Telegram.

Inscreva-se em app.scrapeless.com para um tempo de execução gratuito do Scraping Browser e aponte o chromedp para o navegador em nuvem que limpa o Cloudflare durante a renderização.


FAQ

Q: Preciso de um serviço de solução de CAPTCHA separado?
Não em um navegador que passou. O Cloudflare pontua principalmente a impressão digital, o comportamento e o IP em segundo plano e emite um cookie cf_clearance. O navegador em nuvem é projetado para passar por essa pontuação durante uma renderização normal, então não há uma etapa de quebra de quebra-cabeça separada para configurar.

Q: Por que NewRemoteAllocator com NoModifyURL?
NewRemoteAllocator conecta o chromedp a um navegador que não iniciou. NoModifyURL diz ao chromedp para usar a URL do WebSocket do Scrapeless exatamente como dada, em vez de reescrevê-la para descobrir um ponto de extremidade local do DevTools.

Q: Preciso de um proxy?
Não. A saída residencial está embutida — defina proxyCountry para uma região ou ANY. O Cloudflare pontua o IP de saída, então uma região residencial limpa de forma mais confiável do que um endereço de datacenter.

Q: O desafio ainda aparece em algumas páginas — o que ajuda?
Fixe proxyCountry a uma região residencial e aqueça a sessão carregando a homepage do site primeiro na mesma sessão antes da página protegida, para que a superfície comportamental se apresente como uma visita normal.

Q: Limpar o Cloudflare é legal?
Acessar dados disponíveis publicamente é geralmente permitido, mas as regras variam por jurisdição e site. Revise os termos de serviço do alvo, respeite as diretrizes de robôs e consulte um advogado para qualquer coisa sensível.

Na Scorretless, acessamos apenas dados disponíveis ao público, enquanto cumprem estritamente as leis, regulamentos e políticas de privacidade do site aplicáveis. O conteúdo deste blog é apenas para fins de demonstração e não envolve atividades ilegais ou infratoras. Não temos garantias e negamos toda a responsabilidade pelo uso de informações deste blog ou links de terceiros. Antes de se envolver em qualquer atividade de raspagem, consulte seu consultor jurídico e revise os termos de serviço do site de destino ou obtenha as permissões necessárias.

Artigos mais populares

Catálogo