Escolher um proxy para scraping é, na verdade, uma questão sobre o alvo, não sobre o proxy. Um site sem defesas e um site protegido por DataDome exigem configurações completamente diferentes, e pagar tarifas de proxy residencial para o primeiro desperdiça dinheiro, enquanto usar IPs de datacenter no segundo desperdiça tempo.
Este guia aborda qual tipo de proxy é adequado para cada tipo de scraping, como usá-los sem ser bloqueado e quando uma scraping API é a melhor resposta em vez de proxies brutos.
Os Quatro Tipos, para Scraping
| Tipo | Origem do IP | Velocidade | Taxa de bloqueio | Custo | Melhor uso em scraping |
|---|---|---|---|---|---|
| Datacenter | Provedores de hospedagem | Mais alta | Alta em sites protegidos | Mais baixo | Sites desprotegidos, APIs, coleta em massa |
| Residencial | ISPs de consumidor, domicílios reais | Moderada | Baixa | Médio, por GB | Varejo, viagens, busca, qualquer coisa protegida |
| ISP | ISPs de consumidor, hospedados em datacenter | Alta | Baixa a moderada | Por IP por mês | Sessões logadas, tarefas de longa duração |
| Móvel | Operadoras móveis | Moderada a baixa | Mais baixa | Mais alto | Os alvos mais difíceis, APIs de aplicativos |
Vale fazer uma correção aqui, porque o inverso é amplamente divulgado e este artigo já repetiu isso antes: IPs de datacenter não são entregues a ISPs. Eles são registrados a provedores de hospedagem e nuvem e nunca passam por um provedor de internet de consumidor. É exatamente por isso que são identificáveis: as faixas são públicas, então um site pode classificá-los à primeira vista.
Proxies ISP e móveis também importam para scraping e costumam ficar de fora de comparações como esta. Proxies ISP são a resposta sempre que um scraping envolve login, porque o endereço permanece fixo. Proxies móveis são o último recurso para alvos que derrotam tudo o mais.
Rotação e Gerenciamento de Sessão
A estratégia de rotação importa mais do que o tipo de proxy para evitar bloqueios.
Rotação por requisição fornece um novo IP a cada requisição. É o padrão certo para coletar páginas independentes: listagens de produtos, resultados de busca, entradas de diretório. Nenhum endereço isolado acumula um padrão suspeito.
Sessões fixas (sticky sessions) mantêm um IP por um período determinado, tipicamente de 1 a 30 minutos. Use-as sempre que as requisições dependem umas das outras: paginação que carrega um cursor, qualquer coisa após um login, fluxos de checkout de várias etapas. Uma sessão que muda de IP no meio do processo parece roubo de conta e é desafiada.
A regra prática: gire por requisição, a menos que algo no fluxo exija continuidade, e nesse caso mantenha a janela fixa mais curta que cubra essa necessidade.
Taxa de Requisições e Concorrência
A maioria dos bloqueios é causada pela taxa, não pelo tipo de proxy. Um IP residencial atingindo um site 20 vezes por segundo é mais visivelmente automatizado do que um IP de datacenter atingindo-o uma vez a cada 10 segundos.
- Taxa por IP. Em um site protegido, mantenha cada endereço em aproximadamente uma requisição a cada 2 a 5 segundos. Em um desprotegido, você pode ser bem mais agressivo.
- Concorrência. O throughput total é o número de endereços simultâneos multiplicado pela taxa por IP. Para obter 10 requisições por segundo com segurança, você quer algo na ordem de 30 a 50 endereços em uso simultâneo, não 10 endereços trabalhando três vezes mais rápido.
- Aleatorize. Intervalos fixos são, em si, uma assinatura. Adicione variação (jitter) para que os intervalos mudem.
- Recue diante de falhas. Quando as taxas de erro aumentam, desacelere em vez de tentar de novo com mais força. Insistir dentro de um bloqueio é como um limite de taxa leve se transforma em um banimento definitivo.
Cabeçalhos e Fingerprints
Um IP te leva até a porta. A requisição precisa parecer correta uma vez que você chega lá.
- Envie um conjunto de cabeçalhos completo e coerente. Navegadores reais enviam
Accept,Accept-Language,Accept-Encoding,User-AgenteSec-Ch-Uaem uma combinação consistente. UmUser-Agentisolado em uma requisição por lo mais vazia é um forte sinal de bot. - Mantenha a narrativa dos cabeçalhos consistente com o IP. Um IP alemão enviando
Accept-Language: en-USé uma incompatibilidade que vale evitar quando você está segmentando por geolocalização. - Faça o comportamento de TLS e HTTP corresponder ao cliente que você alega ser. Sistemas avançados fazem fingerprint do handshake TLS e da ordem dos frames HTTP/2, então um cliente Python alegando ser o Chrome é detectável independentemente dos cabeçalhos.
- Use um navegador real quando a página precisar de um. Sites que renderizam conteúdo em JavaScript precisam de um navegador headless, e navegadores headless têm seus próprios fingerprints que precisam ser gerenciados.
Sistemas Anti-Bot Modernos
Cloudflare, DataDome, PerimeterX e Akamai não são listas de bloqueio de IP. Eles pontuam uma combinação de reputação do endereço, fingerprint da requisição, comportamento e resultados de desafios JavaScript.
Isso tem duas consequências. Girar IPs sozinho não vai derrotá-los, porque seu fingerprint permanece inalterado. E um IP residencial é necessário, mas não suficiente: ele remove o sinal mais fácil, deixando os mais difíceis.
Quando você encontrar um:
- Leia a resposta com atenção. Um 403 com uma página de desafio é diferente de um limite de taxa 429 e precisa de uma correção diferente. Verifique o corpo da resposta, não apenas o código de status.
- Desacelere primeiro. A taxa é a coisa mais barata de mudar e geralmente é a causa real.
- Suba na escada de confiança. De datacenter para residencial, de residencial para móvel.
- Renderize o desafio. Se o site exige execução de JavaScript, um cliente HTTP simples nunca vai passar, independentemente do IP usado.
- Reconsidere a abordagem. Se um alvo custa mais em novas tentativas do que os dados valem, uma API gerenciada é mais barata do que continuar lutando contra ele.
Custo, Volume e Quando Usar uma API
Estimar um projeto começa com o peso da página. Uma página HTML típica tem de 0,5 a 2 MB, então 100.000 páginas equivalem a aproximadamente 50 a 200 GB. Renderizar JavaScript multiplica isso várias vezes, porque você também está baixando scripts, estilos e imagens.
O número que realmente decide sua conta é a taxa de bloqueio. Uma configuração que falha em 40% das requisições e as tenta novamente paga por essa largura de banda duas vezes. Proxies baratos com alta taxa de falha frequentemente custam mais por página bem-sucedida do que os caros.
Proxies brutos são a escolha certa quando você controla o scraper, o alvo é bem compreendido e você quer o menor custo por unidade. Uma API gerenciada é a escolha melhor quando o alvo resiste com força, quando você teria que manter fingerprints de navegador e solucionadores de desafios, ou quando o tempo de engenharia é o recurso escasso, não o dinheiro.
A Web Scraping API da Shifter cuida da rotação de proxies, da renderização de JavaScript e dos desafios em uma única requisição, e a SERP API faz o mesmo especificamente para resultados de busca, que de outra forma é um dos alvos mais difíceis de manter. Para proxies brutos, os proxies residenciais e os proxies ISP cobrem as duas pontas da questão de sessão, e as tarifas atuais estão na página de preços.
Um Breve Modelo de Decisão
- O alvo não tem proteção contra bots e você precisa de volume a baixo custo: proxies de datacenter.
- O alvo limita a taxa ou desafia você, sem login envolvido: proxy residencial rotativo.
- O scraping exige uma sessão logada ou precisa manter uma identidade: proxies ISP.
- O alvo derrota o residencial, ou você precisa de acesso em nível de aplicativo: proxies móveis.
- O alvo custa mais em manutenção do que os dados valem: uma scraping API.
A maioria dos projetos reais combina essas abordagens. A coleta roda em residencial rotativo, o punhado de painéis autenticados roda em ISP, e o único alvo impossível passa pela API.
Conclusão
Não existe um único melhor proxy para scraping. Combine o tipo com o quanto o alvo se defende, combine a rotação com se suas requisições dependem umas das outras, e trate a taxa de requisições como a primeira coisa a ajustar quando os bloqueios aparecerem.
Para a taxonomia mais ampla, veja tipos de proxies, e para o caso de uso completo, a visão geral de web scraping.