RPA & AutomaçãoLeitura 4 min

3 Milhões de Requisições Passando o Cloudflare

Jonas HamerskiData Engineer | RPA/Web Scraping | Backend Python1 de dezembro de 20254 min

Um caso de enriquecimento de dados em larga escala: processamento de 1 milhão de registros.

O problema? Cada registro precisava de 3 interações = 3 milhões de requisições totais.

O detalhe técnico: Fonte de dados protegida por Cloudflare.

O resultado: Taxa de sucesso de 97,8%. Zero bloqueios.

A Solução: Engenharia Distribuída

1. Infraestrutura de Rede Distribuída

Infraestrutura de proxy profissional. Nada de soluções gratuitas.

As requisições são distribuídas por múltiplos pontos de origem geograficamente esparsos. Para o Cloudflare, parece tráfego orgânico legítimo.

2. Paralelização em Escala Industrial

Arquitetura distribuída verdadeira:

200 sessões assíncronas simultâneas processando 15 mil requisições cada

Cada sessão completamente isolada com:

  • Origem de rede independente
  • User agent único e realista
  • Headers customizados
  • Gerenciamento próprio de estado
  • Timing independente

3. Simulação de Comportamento Orgânico

Delays não-uniformes: Variação temporal entre 1-3s com distribuição estocástica. Padrões matemáticos perfeitos são detectáveis.

Jitter adaptativo: Randomização em múltiplas camadas - tempo de espera, ordem de execução, intervalos de retry.

Latência realista: 4-7s entre requisições, simulando processamento assíncrono real.

4. Sistema de Resiliência Multicamadas

Retry inteligente com backoff exponencial:

Camada POST:

  • Tentativa 1 → base delay + jitter
  • Tentativa 2 → 2^n delay + jitter
  • Tentativa 3 → 2^n delay + jitter

Camada GET:

  • Aguarda processamento assíncrono
  • Retry progressivo com delays crescentes
  • Validação de integridade dos dados

Taxa de recuperação: 95% das falhas iniciais recuperadas automaticamente.

5. Fingerprinting HTTP Autêntico

Cloudflare analisa muito além do conteúdo da requisição. A assinatura HTTP completa é validada.

Repliquei padrões de navegadores reais:

  • Headers na ordem exata de browsers modernos
  • Accept-Language com fallback hierárquico
  • Accept-Encoding com algoritmos corretos
  • Versionamento de user-agents atualizado

Detalhe crítico: A ordem de envio dos headers é validada. Navegadores seguem padrões específicos. Essa "micro-otimização" foi determinante.

6. Orquestração de Lotes

Processamento dividido em batches controlados:

  • 200 sessões por lote
  • Intervalo variável entre lotes (5-10s)
  • Monitoramento de saúde em tempo real
  • Ajuste dinâmico de velocidade baseado em taxa de erro

Evita picos suspeitos e mantém perfil de tráfego orgânico.

Os Números Finais

Tempo de execução: 6h 23min

Total de requisições: 3.000.000

Registros processados: 1.000.000

Taxa de sucesso: 97,8%

Throughput médio: 7.812 req/min

Pico de throughput: 12.000 req/min

Bloqueios Cloudflare: 0 (zero)

Persistência: Direto em banco de dados

Detalhes Técnicos Avançados

1. Engenharia de Dados Vai Além do Pipeline

Este projeto exigiu domínio em:

  • Programação assíncrona avançada (event loops, coroutines)
  • Protocolos de rede em baixo nível (HTTP/2, TLS fingerprinting)
  • Sistemas distribuídos (coordenação, isolamento de falhas)
  • Análise de comportamento (padrões estatísticos)
  • Otimização de I/O (non-blocking, multiplexing)

Stack tradicional de ETL não preparou para 10% deste desafio.

2. Decomposição de Problemas Complexos

Desafio inicial: Sistema anti-bot de nível empresarial

Abordagem: Engenharia reversa sistemática

  • Identificação de vetores de detecção
  • Isolamento de cada vetor
  • Desenvolvimento de contramedida específica
  • Validação individual
  • Integração orquestrada

Cada camada de proteção teve solução arquitetural dedicada.

3. Performance É Arquitetura, Não Hardware

Experimento 1: 500 sessões em servidor potente → 60% de sucesso

Experimento 2: 200 sessões otimizadas em servidor médio → 97,8% de sucesso

Mais recursos computacionais não compensam arquitetura deficiente.

Design inteligente > força bruta.

4. Observabilidade É Fundamental

Logging estruturado em tempo real:

  • Latência por sessão
  • Taxa de erro por endpoint
  • Distribuição temporal de requisições
  • Análise de padrões de comportamento

Permitiu identificar gargalos invisíveis e ajustar estratégia dinamicamente.

5. Resiliência Por Design

Sistema robusto não é aquele que nunca falha. É aquele que se recupera elegantemente.

Retry inteligente salvou 95% das tentativas iniciais mal-sucedidas. Sem isso, taxa de sucesso cairia para ~50%.

Falha é feature, não bug.

Stack Tecnológica

  • Linguagem: Python com asyncio
  • Concorrência: Event-driven architecture
  • Networking: Proxy profissional
  • Persistência: Banco de dados relacional
  • Observabilidade: Structured logging + métricas

Princípios Aplicados

Fonte de dados legítima
Respeito integral aos ToS
Infraestrutura comercial legítima
Rate limiting responsável

Eficiência técnica com responsabilidade profissional.

O Que Isso Significa Para Engenharia

Este projeto demonstra que os desafios mais interessantes estão fora da zona de conforto tradicional.

Cloudflare não foi superado com SQL otimizado ou Spark cluster. Foi superado com:

  • Compreensão profunda de sistemas distribuídos
  • Engenharia reversa de protocolos
  • Pensamento adversarial
  • Arquitetura resiliente

Bootcamps ensinam ferramentas. Problemas reais ensinam engenharia.

Conclusão

Processar 3 milhões de requisições contra sistema anti-bot de nível empresarial é sobre engenharia pura: entender o problema, decompor em partes solucionáveis, implementar e validar com dados.

Cloudflare é sofisticado. Mas sofisticação é engenharia. E engenharia pode ser estudada, compreendida, e superada com técnica superior.


"Design inteligente supera força bruta. Sempre."
Assuntos
WebScrapingCloudflarePythonArquiteturaDistribuídaPerformance
Tem um caso parecido?

A gente coleta o dado na fonte e entrega dentro do seu sistema

Fale direto com quem constrói o robô. A conversa começa pela fonte, pelo volume e pelo destino do dado, não por proposta.