Voltar ao blog

Proxies para Web Scraping e Coleta de Dados: O Guia Essencial

CRITICAMENTE IMPORTANTE: - Traduza SOMENTE para o Português, NÃO misture idiomas - NÃO inclua palavras de outros idiomas na tradução - Use SOMENTE caracteres e o alfabeto Português - NUNCA TRADUZA códigos promocionais (por exemplo, ARTHELLO) - mantenha-os como estão Texto para tradução: Neste artigo: Você aprenderá por que os servidores proxy se tornaram uma ferramenta obrigatória para web scraping em 2025, como funcionam os sistemas anti-bot modernos (Cloudflare, DataDome), quais tipos de proxy são melhores...

📅14 de novembro de 2025

Neste artigo: Você descobrirá por que os servidores proxy se tornaram uma ferramenta essencial para web scraping em 2025, como funcionam os modernos sistemas anti-bot (Cloudflare, DataDome), quais tipos de proxy são mais adequados para parsing de dados e como escolher o proxy certo para suas tarefas. O material é baseado em dados atuais e experiência prática.

🎯 Por que proxies são necessários para parsing

Web scraping é a coleta automatizada de dados de websites. Em 2025, esta é uma tecnologia criticamente importante para os negócios: monitoramento de preços de concorrentes, coleta de dados para aprendizado de máquina, agregação de conteúdo, análise de mercado. No entanto, sites modernos se defendem ativamente contra bots, e o parsing eficaz é praticamente impossível sem proxies.

Principais razões para usar proxies

🚫 Contornar bloqueios por IP

Os sites rastreiam o número de solicitações de cada endereço IP. Ao exceder o limite (geralmente 10-100 solicitações por minuto), você é bloqueado. Proxies permitem distribuir as solicitações por vários endereços IP, tornando você invisível.

🌍 Acesso Geolocalizado

Muitos sites exibem conteúdo diferente dependendo do país do usuário. Para fazer parsing de dados globais, você precisa de proxies de diferentes países. Por exemplo, para monitorar preços da Amazon nos EUA, você precisa de IPs americanos.

⚡ Processamento Paralelo

Sem proxies, você está limitado a um único IP e solicitações sequenciais. Com um pool de proxies, você pode fazer centenas de solicitações paralelas, acelerando o parsing em 10 a 100 vezes. Crítico para grandes volumes de dados.

🔒 Anonimato e Segurança

Proxies ocultam seu IP real, protegendo contra retargeting, rastreamento e potenciais riscos legais. Especialmente importante ao fazer parsing de dados sensíveis ou inteligência competitiva.

⚠️ O que acontece sem proxies

  • Banimento instantâneo — seu IP será bloqueado após 50-100 solicitações
  • CAPTCHA em cada etapa — você terá que resolver CAPTCHAs manualmente
  • Dados incompletos — você receberá apenas uma amostra limitada
  • Baixa velocidade — um IP significa solicitações sequenciais
  • Detecção de bot — sites modernos identificarão a automação instantaneamente

🌐 O cenário do web scraping em 2025

A indústria de web scraping está passando por mudanças sem precedentes em 2025. Por um lado, a demanda por dados cresce exponencialmente — modelos de IA exigem datasets de treinamento, e os negócios precisam de análises em tempo real. Por outro lado, as proteções estão se tornando cada vez mais sofisticadas.

Principais tendências de 2025

1. Sistemas anti-bot baseados em IA

Machine learning agora analisa padrões comportamentais: movimentos do mouse, velocidade de rolagem, tempo entre cliques. Sistemas como DataDome detectam bots com 99,99% de precisão em menos de 2 milissegundos.

  • Análise de sinais client-side e server-side
  • Behavioral fingerprinting (impressões comportamentais)
  • Taxa de falsos positivos inferior a 0,01%

2. Proteção em múltiplas camadas

Os sites não dependem mais de uma única tecnologia. O Cloudflare Bot Management combina desafios de JS, TLS fingerprinting, bancos de dados de reputação de IP e análise comportamental. Superar todas as camadas simultaneamente é um desafio complexo.

3. Rate limiting como padrão

Praticamente todos os grandes sites aplicam rate limiting — limitação da frequência de solicitações. Limites típicos: 10-100 solicitações/minuto para APIs públicas, 1-5 solicitações/segundo para páginas normais. O challenge rate-limiting aplica CAPTCHA ao exceder os limites.

Estatísticas do Mercado

Indicador 2023 2025 Mudança
Sites com proteção anti-bot 43% 78% +35%
Taxa de sucesso sem proxy 25% 8% -17%
Limite médio de taxa (req/min) 150 60 -60%
Preço de proxies de qualidade $5-12/GB $1.5-4/GB -50%

🛡️ Sistemas anti-bot modernos

Entender como os sistemas anti-bot funcionam é crucial para um scraping bem-sucedido. Em 2025, as proteções evoluíram de simples bloqueios de IP para sistemas complexos em múltiplas camadas com aprendizado de máquina.

Métodos de Detecção de Bots

Reputação do IP

Bancos de dados de IPs de proxy conhecidos (IPs de data center são facilmente identificados). Endereços IP são classificados por ASN (Autonomous System Number), histórico de abuso, e tipo (residencial/data center).

TLS/HTTP Fingerprinting

Análise do TLS handshake (impressão digital JA3), ordem dos cabeçalhos HTTP, versões de protocolo. Bots frequentemente usam bibliotecas padrão com padrões característicos.

Desafios JavaScript

Execução de cálculos complexos em JavaScript no navegador. Clientes HTTP simples (requests, curl) não conseguem executar JS. Requer navegadores headless (Puppeteer, Selenium).

Análise Comportamental

Rastreamento de movimentos do mouse, velocidade de digitação, padrões de rolagem. Modelos de IA são treinados em milhões de sessões de usuários reais e bots.

Níveis de Bloqueio

1. Restrições Leves

  • Desafios CAPTCHA
  • Atraso nas respostas
  • Ocultação de parte dos dados

2. Bloqueios Médios

  • HTTP 403 Forbidden
  • HTTP 429 Too Many Requests
  • Bloqueio temporário do IP (1-24 horas)

3. Banimentos Severos

  • Bloqueio permanente do IP
  • Bloqueio de toda a sub-rede (Classe C)
  • Adição a listas negras globais

☁️ Cloudflare, DataDome e outras proteções

Principais plataformas anti-bot

Cloudflare Bot Management

A proteção mais popular — usada em mais de 20% dos sites da internet. Combina várias técnicas:

  • JS Challenge — Cloudflare Turnstile (substituto do reCAPTCHA)
  • TLS Fingerprinting — impressões digitais JA3/JA4
  • IP Intelligence — base de milhões de proxies conhecidos
  • Behavioral scoring — análise de scroll/mouse/timing
  • Rate limiting — limites adaptativos baseados em comportamento

Contorno: Requer proxies residenciais/móveis de qualidade + navegador headless com fingerprints corretos + comportamento semelhante ao humano.

DataDome

Proteção baseada em IA com foco em aprendizado de máquina. Toma decisões em menos de 2 ms com 99,99% de precisão.

  • Modelos ML — treinados em petabytes de dados
  • Sinais de Cliente + Servidor — análise bidirecional
  • Análise de ASN de IP — avaliação de reputação por ASN
  • Cadência de Solicitação — análise de frequência e padrões de solicitação
  • Entropia de Cabeçalho — detecção de anomalias nos cabeçalhos

Taxa de Falso Positivo: inferior a 0,01% — o sistema é muito preciso, mas agressivo com proxies.

PerimeterX (HUMAN)

Análise comportamental baseada em biometria. Rastreia micro-movimentos do mouse, pressão na tela sensível ao toque, padrões de navegação.

Imperva (Incapsula)

Proteção de nível empresarial. Usada em sites financeiros e governamentais. Muito difícil de contornar sem proxies residenciais premium.

⏱️ Rate Limiting e detecção de padrões

Rate limiting é a limitação do número de solicitações de uma única fonte em um determinado período. Mesmo com proxies, você precisa gerenciar a frequência de solicitações corretamente, caso contrário, o padrão será reconhecido.

Tipos de Rate Limiting

1. Fixed Window (Janela Fixa)

Limite fixo por janela de tempo. Por exemplo: 100 solicitações por minuto. Às 10:00:00, o contador é zerado.

Janela 10:00-10:01: máximo de 100 solicitações
Janela 10:01-10:02: o contador é zerado

2. Sliding Window (Janela Deslizante)

Janela deslizante. Considera as solicitações dos últimos N segundos a partir do momento atual. Um método mais preciso e justo.

3. Token Bucket (Balde de Tokens)

Você tem um "balde de tokens" (ex: 100 unidades). Cada solicitação consome um token. Os tokens são reabastecidos a uma taxa de X por segundo. Permite picos curtos de atividade.

🎯 Estratégias para contornar o rate limiting

  • Rotação de proxy — cada IP tem seu limite, usamos um pool
  • Adição de atrasos — imitar comportamento humano (0.5-3 seg entre solicitações)
  • Randomização de intervalos — não exatamente 1 seg, mas 0.8-1.5 seg aleatoriamente
  • Respeito ao robots.txt — observar o Crawl-delay
  • Distribuição de carga — parsing em vários threads com IPs diferentes

🔄 Tipos de proxy para scraping

Nem todos os proxies são igualmente úteis para parsing. A escolha do tipo de proxy depende do site de destino, volume de dados, orçamento e nível de proteção.

🏢

Proxies de Data Center

IPs de data centers (AWS, Google Cloud, OVH). Rápidos e baratos, mas facilmente detectados por sites.

✅ Vantagens:

  • Os mais baratos ($1.5-3/GB)
  • Alta velocidade (100+ Mbps)
  • IPs estáveis

❌ Desvantagens:

  • Facilmente detectáveis (ASN conhecido)
  • Alta taxa de banimento (50-80%)
  • Não adequados para sites complexos

Para: Sites simples sem proteção, APIs, projetos internos

🏠

Proxies Residenciais

IPs de usuários domésticos reais através de ISPs (provedores de serviços). Parecem usuários comuns.

✅ Vantagens:

  • Parecem legítimos
  • Baixa taxa de banimento (10-20%)
  • Enormes pools de IP (milhões)
  • Geotargeting por países/cidades

❌ Desvantagens:

  • Mais caros ($2.5-10/GB)
  • Mais lentos (5-50 Mbps)
  • IPs instáveis (podem mudar)

Para: E-commerce, redes sociais, sites com proteção, monitoramento de SEO

📱

Proxies Móveis

IPs de operadoras móveis (3G/4G/5G). Os mais confiáveis, pois milhares de usuários compartilham um IP.

✅ Vantagens:

  • Praticamente não são bloqueados (taxa de banimento ~5%)
  • IPs compartilhados (milhares atrás de um IP)
  • Ideais para proteções rigorosas
  • Rotação automática de IP

❌ Desvantagens:

  • Os mais caros ($3-15/GB)
  • Mais lentos que residenciais
  • Pool de IPs limitado

Para: Instagram, TikTok, bancos, máxima proteção

⚔️ Comparação: Data Center vs. Residencial vs. Móvel

Comparação Detalhada

Parâmetro Data Center Residencial Móvel
Taxa de Sucesso 20-50% 80-90% 95%+
Velocidade 100+ Mbps 10-50 Mbps 5-30 Mbps
Preço/GB $1.5-3 $2.5-8 $3-12
Tamanho do Pool 10K-100K 10M-100M 1M-10M
Detectabilidade Alta Baixa Muito Baixa
Geotargeting País/Cidade País/Cidade/ISP País/Operadora
Melhor para APIs, sites simples E-commerce, SEO Redes sociais, proteção rigorosa

💡 Recomendação: Comece com proxies residenciais — o equilíbrio ideal entre custo e qualidade para a maioria das tarefas. Data Center apenas para sites simples. Móvel para recursos altamente protegidos.

🎯 Como escolher um proxy para suas tarefas

Matriz de Escolha de Proxy

Critérios de Escolha:

1. Nível de proteção do site de destino

  • Sem proteção: Proxies Data Center
  • Proteção básica (rate limiting): Proxies Data Center com rotação
  • Proteção média (Cloudflare Básico): Proxies Residenciais
  • Proteção alta (Cloudflare Pro, DataDome): Residenciais Premium
  • Proteção máxima (PerimeterX, redes sociais): Proxies Móveis

2. Volume de dados

  • Menos de 10 GB/mês: Qualquer tipo
  • 10-100 GB/mês: Residenciais ou Data Center baratos
  • 100-1000 GB/mês: Combinação Data Center + Residencial
  • Mais de 1 TB/mês: Bulk Data Center + Residenciais seletivos

3. Orçamento

  • Até $100/mês: Proxies Data Center
  • $100-500/mês: Proxies Residenciais
  • $500-2000/mês: Residenciais Premium + Móveis para tarefas críticas
  • Mais de $2000/mês: Pools mistos por tarefa

4. Requisitos geográficos

  • Sem restrições geo: Qualquer tipo
  • País específico: Residenciais com geotargeting
  • Cidade/região específica: Residenciais Premium
  • ISP específico: Residenciais com targeting por ISP

✅ Exemplos de Uso

Parsing de preços Amazon/eBay

Recomendação: Proxies Residenciais do país de destino
Por quê: Proteção média + conteúdo geolocalizado + grande volume de dados

Coleta de dados Instagram/TikTok

Recomendação: Proxies Móveis
Por quê: Proteção anti-bot agressiva + plataforma móvel

Parsing de sites de notícias

Recomendação: Proxies Data Center com rotação
Por quê: Geralmente sem proteção séria + grande volume

Monitoramento de SEO do Google

Recomendação: Proxies Residenciais de diferentes países
Por quê: Resultados de pesquisa geolocalizados + detecção de IPs de data center

💰 Análise de custos de proxy para scraping

Calcular corretamente o orçamento de proxy é a chave para a rentabilidade do projeto. Vamos analisar cenários reais e calcular os custos.

Cálculo de Tráfego

Fórmula de Cálculo

Tráfego Mensal = Nº de Páginas × Tamanho da Página × Coeficiente de Overhead

  • Tamanho médio de página HTML: 50-200 KB
  • Com imagens/CSS/JS: 500 KB - 2 MB
  • Coeficiente de Overhead: 1.2-1.5× (tentativas, redirecionamentos)
  • Endpoints de API: geralmente 1-50 KB

Exemplos de Cálculos

Cenário 1: Parsing de produtos Amazon

Páginas/dia: 10.000
Tamanho da página: ~150 KB
Volume Mensal: 10.000 × 150 KB × 30 × 1.3 = 58.5 GB
Tipo de Proxy: Residencial
Custo: 58.5 GB × $2.7 = $158/mês

Cenário 2: Monitoramento de SEO do Google

Palavras-chave: 1.000
Verificações/dia: 1 vez
Tamanho da SERP: ~80 KB
Volume Mensal: 1.000 × 80 KB × 30 × 1.2 = 2.8 GB
Tipo de Proxy: Residencial (vários países)
Custo: 2.8 GB × $2.7 = $7.6/mês

Cenário 3: Parsing em massa de notícias

Artigos/dia: 50.000
Tamanho do artigo: ~30 KB (apenas texto)
Volume Mensal: 50.000 × 30 KB × 30 × 1.2 = 54 GB
Tipo de Proxy: Data Center (sites simples)
Custo: 54 GB × $1.5 = $81/mês

Otimização de Custos

1. Cache os dados

Salve o HTML localmente e faça o parsing novamente sem novas solicitações. Economia de até 50% no tráfego.

2. Use APIs sempre que possível

Endpoints de API retornam apenas JSON (1-50 KB) em vez de HTML completo (200+ KB). Economia de 80-90%.

3. Bloqueie imagens

Em Puppeteer/Selenium, bloqueie o carregamento de imagens, vídeos e fontes. Economia de 60-70% no tráfego.

4. Faça parsing apenas do novo

Use checksums ou timestamps para identificar alterações. Não faça parsing de páginas inalteradas.

💡 Pro-tip: Estratégia Híbrida

Use 70-80% de proxies de data center baratos para scraping de sites simples, e 20-30% residenciais para sites complexos com proteção. Isso otimiza a relação preço/qualidade. Exemplo: para 100K páginas, use data center para 80K páginas simples ($120) e residencial para 20K protegidas ($54). Total: $174 em vez de $270 (economia de 35%).

Comece a fazer parsing com ProxyCove!

Cadastre-se, adicione fundos com o código promocional ARTHELLO e receba um bônus de +$1.3!

Continuação na Parte 2: Rotação de endereços IP, configuração de proxy em Python (requests, Scrapy), Puppeteer e Selenium. Exemplos de código práticos para tarefas reais de parsing com ProxyCove.

Nesta parte: Abordaremos estratégias de rotação de endereços IP (rotating vs sticky sessions), aprenderemos a configurar proxies em Python (requests, Scrapy), Puppeteer e Selenium. Exemplos de código práticos para tarefas reais de parsing com ProxyCove.

🔄 Estratégias de rotação de IP

Rotação de proxy é uma técnica chave para um scraping bem-sucedido. Uma estratégia de rotação correta pode aumentar a taxa de sucesso de 20% para 95%+. Em 2025, existem várias abordagens comprovadas.

Estratégias Principais

1. Rotação a cada solicitação

Cada solicitação HTTP usa um novo IP. Máximo anonimato, mas pode causar problemas com sessões.

Adequado para:

  • Parsing de listas de produtos
  • Coleta de páginas estáticas
  • Verificação em massa de URLs
  • Scraping de SERP do Google

2. Sessões Fixas (Sticky Sessions)

Um IP é usado para toda a sessão do usuário (10-30 minutos). Imita o comportamento de um usuário real.

Adequado para:

  • Processos multi-etapas (login → dados)
  • Preenchimento de formulários
  • Gerenciamento de contas
  • Carrinhos de E-commerce

3. Rotação por Tempo

Troca de IP a cada N minutos ou após N solicitações. Um equilíbrio entre estabilidade e anonimato.

Adequado para:

  • Sessões de parsing longas
  • Chamadas de API com rate limit
  • Monitoramento em tempo real

4. Rotação Inteligente (Guiada por IA)

O algoritmo decide quando trocar o IP com base nas respostas do servidor (429, 403) e nos padrões de sucesso.

Adequado para:

  • Sistemas anti-bot complexos
  • Parsing adaptativo
  • Alta eficiência

💡 Recomendações de Escolha

  • Para alta velocidade: Rotação a cada solicitação + grande pool de proxies
  • Para sites complexos: Sessões fixas + imitação de comportamento
  • Para APIs: Rotação por tempo respeitando o rate limit
  • Para redes sociais: Sessões fixas + proxies móveis (mínimo 10 min por IP)

⚖️ Sessões Rotativas vs. Sessões Fixas (Sticky)

Comparação Detalhada

Critério Proxies Rotativos Sessões Fixas (Sticky)
Troca de IP A cada solicitação ou por temporizador 10-30 minutos por IP
Manter cookies ❌ Não ✅ Sim
Velocidade de parsing Muito alta Média
Contorno de rate limiting Excelente Ruim
Processos multi-etapas Inadequado Ideal
Consumo de proxy Eficiente Médio
Detectabilidade Baixa Baixa
Custo para o mesmo volume Inferior Superior (retenção mais longa)

🎯 Veredito: Use proxies rotativos para parsing de dados estáticos em massa. Use sessões fixas para gerenciar contas, formulários e processos multi-etapas. A ProxyCove suporta ambos os modos!

🐍 Configuração de proxy no Python Requests

Python Requests é a biblioteca mais popular para requisições HTTP. A configuração de proxy leva apenas 2 linhas de código.

Configuração Básica

Exemplo Simples

import requests # Proxy ProxyCove (substitua pelos seus dados) proxy = { "http": "http://username:password@gate.proxycove.com:8080", "https": "http://username:password@gate.proxycove.com:8080" } # Fazendo a requisição via proxy response = requests.get("https://httpbin.org/ip", proxies=proxy) print(response.json()) # Você verá o IP do servidor proxy

✅ Substitua username:password pelas suas credenciais ProxyCove

Rotação de Proxy de uma Lista

import requests import random # Lista de proxies ProxyCove (ou de outros provedores) proxies_list = [ "http://user1:pass1@gate.proxycove.com:8080", "http://user2:pass2@gate.proxycove.com:8080", "http://user3:pass3@gate.proxycove.com:8080", ] def get_random_proxy(): proxy_url = random.choice(proxies_list) return {"http": proxy_url, "https": proxy_url} # Fazendo parsing de 100 páginas com rotação urls = [f"https://example.com/page/{i}" for i in range(1, 101)] for url in urls: proxy = get_random_proxy() try: response = requests.get(url, proxies=proxy, timeout=10) print(f"✅ {url}: {response.status_code}") except Exception as e: print(f"❌ {url}: {str(e)}")

Tratamento de Erros e Retry

import requests from requests.adapters import HTTPAdapter from urllib3.util.retry import Retry # Configuração da estratégia de retry retry_strategy = Retry( total=3, # 3 tentativas backoff_factor=1, # Atraso entre tentativas status_forcelist=[429, 500, 502, 503, 504], ) adapter = HTTPAdapter(max_retries=retry_strategy) session = requests.Session() session.mount("http://", adapter) session.mount("https://", adapter) # Proxy proxy = { "http": "http://username:password@gate.proxycove.com:8080", "https": "http://username:password@gate.proxycove.com:8080" } # Requisição com retry automático response = session.get( "https://example.com", proxies=proxy, timeout=15 )

🕷️ Configuração do Scrapy com proxy

Scrapy é um framework poderoso para scraping em escala. Ele suporta middleware para rotação automática de proxies.

Método 1: Configuração Básica

settings.py

# settings.py # Usamos uma variável de ambiente para o proxy import os http_proxy = os.getenv('HTTP_PROXY', 'http://user:pass@gate.proxycove.com:8080') # Scrapy usa automaticamente a variável http_proxy DOWNLOADER_MIDDLEWARES = { 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 110, } # Configurações adicionais para melhor compatibilidade CONCURRENT_REQUESTS = 16 # Solicitações paralelas DOWNLOAD_DELAY = 0.5 # Atraso entre solicitações (segundos) RANDOMIZE_DOWNLOAD_DELAY = True # Randomização do atraso

Método 2: Middleware personalizado com rotação

# middlewares.py import random from scrapy import signals class ProxyRotationMiddleware: def __init__(self): self.proxies = [ 'http://user1:pass1@gate.proxycove.com:8080', 'http://user2:pass2@gate.proxycove.com:8080', 'http://user3:pass3@gate.proxycove.com:8080', ] def process_request(self, request, spider): # Escolhe um proxy aleatório para cada solicitação proxy = random.choice(self.proxies) request.meta['proxy'] = proxy spider.logger.info(f'Usando proxy: {proxy}') # settings.py DOWNLOADER_MIDDLEWARES = { 'myproject.middlewares.ProxyRotationMiddleware': 100, 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 110, }

Método 3: scrapy-rotating-proxies (Recomendado)

# Instalação pip install scrapy-rotating-proxies # settings.py ROTATING_PROXY_LIST = [ 'http://user1:pass1@gate.proxycove.com:8080', 'http://user2:pass2@gate.proxycove.com:8080', 'http://user3:pass3@gate.proxycove.com:8080', ] DOWNLOADER_MIDDLEWARES = { 'rotating_proxies.middlewares.RotatingProxyMiddleware': 610, 'rotating_proxies.middlewares.BanDetectionMiddleware': 620, } # Configurações para detecção de banimento ROTATING_PROXY_BAN_POLICY = 'rotating_proxies.policy.BanDetectionPolicy' ROTATING_PROXY_PAGE_RETRY_TIMES = 5

✅ Rastreia automaticamente proxies funcionais e exclui os banidos

🎭 Puppeteer e proxies

Puppeteer é o Chrome headless para sites pesados em JavaScript. Necessário para contornar desafios de JS (Cloudflare, DataDome).

Node.js + Puppeteer

Exemplo Básico

const puppeteer = require('puppeteer'); (async () => { // Configuração do proxy ProxyCove const browser = await puppeteer.launch({ headless: true, args: [ '--proxy-server=gate.proxycove.com:8080', '--no-sandbox', '--disable-setuid-sandbox' ] }); const page = await browser.newPage(); // Autenticação (se o proxy exigir login/senha) await page.authenticate({ username: 'your_username', password: 'your_password' }); // Fazendo parsing da página await page.goto('https://example.com'); const content = await page.content(); console.log(content); await browser.close(); })();

Rotação de Proxy no Puppeteer

const puppeteer = require('puppeteer'); const proxies = [ { server: 'gate1.proxycove.com:8080', username: 'user1', password: 'pass1' }, { server: 'gate2.proxycove.com:8080', username: 'user2', password: 'pass2' }, { server: 'gate3.proxycove.com:8080', username: 'user3', password: 'pass3' } ]; async function scrapeWithProxy(url, proxyConfig) { const browser = await puppeteer.launch({ headless: true, args: [`--proxy-server=${proxyConfig.server}`] }); const page = await browser.newPage(); await page.authenticate({ username: proxyConfig.username, password: proxyConfig.password }); await page.goto(url, { waitUntil: 'networkidle2' }); const data = await page.evaluate(() => document.body.innerText); await browser.close(); return data; } // Usando proxies diferentes para páginas diferentes (async () => { const urls = ['https://example.com/page1', 'https://example.com/page2']; for (let i = 0; i < urls.length; i++) { const proxy = proxies[i % proxies.length]; // Rotação const data = await scrapeWithProxy(urls[i], proxy); console.log(`Página ${i + 1}:`, data.substring(0, 100)); } })();

puppeteer-extra com plugins

// npm install puppeteer-extra puppeteer-extra-plugin-stealth const puppeteer = require('puppeteer-extra'); const StealthPlugin = require('puppeteer-extra-plugin-stealth'); // O plugin oculta os sinais de navegador headless puppeteer.use(StealthPlugin()); (async () => { const browser = await puppeteer.launch({ headless: true, args: ['--proxy-server=gate.proxycove.com:8080'] }); const page = await browser.newPage(); await page.authenticate({ username: 'user', password: 'pass' }); // Agora os sites não detectarão que é um bot! await page.goto('https://example.com'); await browser.close(); })();

✅ O plugin Stealth oculta os indicadores de webdriver, objetos chrome e outras automações

🤖 Selenium com proxy (Python)

Selenium é uma ferramenta clássica para automação de navegadores. Suporta Chrome, Firefox e outros navegadores.

Chrome + Selenium

Configuração Básica com Proxy

from selenium import webdriver from selenium.webdriver.chrome.options import Options # Configuração do Chrome com proxy chrome_options = Options() chrome_options.add_argument('--headless') # Sem GUI chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') # Proxy ProxyCove proxy = "gate.proxycove.com:8080" chrome_options.add_argument(f'--proxy-server={proxy}') # Criação do driver driver = webdriver.Chrome(options=chrome_options) # Fazendo parsing da página driver.get('https://httpbin.org/ip') print(driver.page_source) driver.quit()

Proxy com autenticação (selenium-wire)

# pip install selenium-wire from seleniumwire import webdriver from selenium.webdriver.chrome.options import Options # Configuração do proxy com login/senha seleniumwire_options = { 'proxy': { 'http': 'http://username:password@gate.proxycove.com:8080', 'https': 'http://username:password@gate.proxycove.com:8080', 'no_proxy': 'localhost,127.0.0.1' } } chrome_options = Options() chrome_options.add_argument('--headless') # Driver com proxy autenticado driver = webdriver.Chrome( options=chrome_options, seleniumwire_options=seleniumwire_options ) driver.get('https://example.com') print(driver.title) driver.quit()

✅ selenium-wire suporta proxies com username:password (Selenium padrão não suporta)

Rotação de Proxy no Selenium

from seleniumwire import webdriver from selenium.webdriver.chrome.options import Options import random # Lista de proxies proxies = [ 'http://user1:pass1@gate.proxycove.com:8080', 'http://user2:pass2@gate.proxycove.com:8080', 'http://user3:pass3@gate.proxycove.com:8080', ] def create_driver_with_proxy(proxy_url): seleniumwire_options = { 'proxy': { 'http': proxy_url, 'https': proxy_url, } } chrome_options = Options() chrome_options.add_argument('--headless') driver = webdriver.Chrome( options=chrome_options, seleniumwire_options=seleniumwire_options ) return driver # Fazendo parsing de várias páginas com proxies diferentes urls = ['https://example.com/1', 'https://example.com/2', 'https://example.com/3'] for url in urls: proxy = random.choice(proxies) driver = create_driver_with_proxy(proxy) try: driver.get(url) print(f"✅ {url}: {driver.title}") except Exception as e: print(f"❌ {url}: {str(e)}") finally: driver.quit()

📚 Bibliotecas para rotação de proxy

scrapy-rotating-proxies

Rotação automática para Scrapy com detecção de banimento.

pip install scrapy-rotating-proxies

requests-ip-rotator

Rotação via AWS API Gateway (IPs gratuitos).

pip install requests-ip-rotator

proxy-requests

Wrapper para requests com rotação e verificação.

pip install proxy-requests

puppeteer-extra-plugin-proxy

Plugin para Puppeteer com rotação de proxy.

npm install puppeteer-extra-plugin-proxy

💻 Exemplos de código completos

Exemplo: Parsing de produtos Amazon com rotação

import requests from bs4 import BeautifulSoup import random import time # Proxies ProxyCove PROXIES = [ {"http": "http://user1:pass1@gate.proxycove.com:8080", "https": "http://user1:pass1@gate.proxycove.com:8080"}, {"http": "http://user2:pass2@gate.proxycove.com:8080", "https": "http://user2:pass2@gate.proxycove.com:8080"}, ] # User agents para rotação USER_AGENTS = [ 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36', ] def scrape_amazon_product(asin): url = f"https://www.amazon.com/dp/{asin}" proxy = random.choice(PROXIES) headers = {'User-Agent': random.choice(USER_AGENTS)} try: response = requests.get(url, proxies=proxy, headers=headers, timeout=15) if response.status_code == 200: soup = BeautifulSoup(response.content, 'html.parser') # Fazendo parsing dos dados title = soup.find('span', {'id': 'productTitle'}) price = soup.find('span', {'class': 'a-price-whole'}) return { 'asin': asin, 'title': title.text.strip() if title else 'N/A', 'price': price.text.strip() if price else 'N/A', } except Exception as e: print(f"Erro para {asin}: {str(e)}") return None # Fazendo parsing de uma lista de produtos asins = ['B08N5WRWNW', 'B07XJ8C8F5', 'B09G9FPHY6'] for asin in asins: product = scrape_amazon_product(asin) if product: print(f"✅ {product['title']}: {product['price']}") time.sleep(random.uniform(2, 5)) # Atraso semelhante ao humano

Exemplo: Scrapy spider com proxies

# spider.py import scrapy class ProductSpider(scrapy.Spider): name = 'products' start_urls = ['https://example.com/products'] custom_settings = { 'ROTATING_PROXY_LIST': [ 'http://user1:pass1@gate.proxycove.com:8080', 'http://user2:pass2@gate.proxycove.com:8080', ], 'DOWNLOADER_MIDDLEWARES': { 'rotating_proxies.middlewares.RotatingProxyMiddleware': 610, 'rotating_proxies.middlewares.BanDetectionMiddleware': 620, }, 'DOWNLOAD_DELAY': 1, 'CONCURRENT_REQUESTS': 8, } def parse(self, response): for product in response.css('div.product'): yield { 'name': product.css('h2.title::text').get(), 'price': product.css('span.price::text').get(), 'url': response.urljoin(product.css('a::attr(href)').get()), } # Próxima página next_page = response.css('a.next::attr(href)').get() if next_page: yield response.follow(next_page, self.parse)

Pronto para começar a fazer parsing com ProxyCove?

Proxies Residenciais, Móveis e Data Center para qualquer tarefa. Adicione fundos com o código promocional ARTHELLO e ganhe um bônus de +$1.3!

Continuação na parte final: Melhores práticas de web scraping, como evitar bans, aspectos legais do parsing, casos de uso reais e conclusões.

Na parte final: Abordaremos as melhores práticas de web scraping de 2025, estratégias para evitar bans, os aspectos legais do parsing (GDPR, CCPA), casos de uso reais e recomendações finais para um scraping bem-sucedido.

✨ Melhores práticas de web scraping 2025

O scraping bem-sucedido em 2025 é uma combinação de habilidades técnicas, ferramentas corretas e abordagem ética. Seguir as melhores práticas aumenta a taxa de sucesso de 30% para mais de 90%+.

Regras de Ouro do Scraping

1. Respeite o robots.txt

O arquivo robots.txt indica quais partes do site podem ser raspadas. Seguir essas regras é um sinal de scraper ético.

User-agent: *
Crawl-delay: 10
Disallow: /admin/
Disallow: /api/private/

✅ Respeite o Crawl-delay e não faça scraping de caminhos proibidos

2. Adicione atrasos

Uma pessoa não faz 100 solicitações por segundo. Imite o comportamento natural.

  • 0.5-2 seg entre solicitações para sites simples
  • 2-5 seg para sites com proteção
  • 5-10 seg para dados sensíveis
  • Randomização dos atrasos (não exatamente 1 seg!)

3. Rotação de User-Agent

O mesmo User-Agent + muitas solicitações = sinal de alerta para sistemas anti-bot.

USER_AGENTS = [
  'Mozilla/5.0 (Windows NT 10.0) Chrome/120.0',
  'Mozilla/5.0 (Macintosh) Safari/17.0',
  'Mozilla/5.0 (X11; Linux) Firefox/121.0',
]

4. Tratamento de erros

A rede é instável. Proxies caem. Sites retornam 503. Sempre use lógica de retry.

  • 3-5 tentativas com backoff exponencial
  • Log de erros
  • Fallback para outro proxy em caso de banimento
  • Salvamento de progresso

5. Usar Sessões

A Sessão Requests salva cookies, reutiliza conexões TCP (mais rápido) e gerencia cabeçalhos.

session = requests.Session()
session.headers.update({...})

6. Cache de resultados

Não faça parsing da mesma coisa duas vezes. Salve o HTML em arquivos ou banco de dados para análise posterior sem novas solicitações.

Imitando o Comportamento Humano

O que as pessoas fazem vs. bots

Comportamento Humano Bot (ruim) Bot (bom)
Velocidade das solicitações 1-5 seg entre cliques 100/seg 0.5-3 seg (aleatório)
User-Agent Navegador real Python-requests/2.28 Chrome 120 (rotação)
Cabeçalhos HTTP 15-20 cabeçalhos 3-5 cabeçalhos Conjunto completo
JavaScript Executa sempre Não executa Navegador Headless
Cookies Salva Ignora Gerencia

🎯 Recomendações de Headers

headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-US,en;q=0.9', 'Accept-Encoding': 'gzip, deflate, br', 'DNT': '1', 'Connection': 'keep-alive', 'Upgrade-Insecure-Requests': '1', 'Sec-Fetch-Dest': 'document', 'Sec-Fetch-Mode': 'navigate', 'Sec-Fetch-Site': 'none', 'Cache-Control': 'max-age=0', }

🛡️ Como evitar bans

Bans são o principal problema no scraping. Em 2025, os sistemas de detecção se tornaram tão inteligentes que exigem uma abordagem complexa para o contorno.

Estratégia de Defesa em Múltiplas Camadas

⚠️ Sinais que levam ao banimento

  • Reputação do IP — ASN de proxy conhecido ou IP de data center
  • Rate limiting — muitas solicitações muito rápidas
  • Padrões de comportamento — intervalos fixos entre solicitações
  • Ausência de execução de JS — desafios de navegador não resolvidos
  • TLS fingerprint — requests/curl têm impressões digitais únicas
  • HTTP/2 fingerprint — a ordem dos cabeçalhos denuncia a automação
  • Impressões digitais WebGL/Canvas — para navegadores headless

✅ Como contornar a detecção

1. Use proxies de qualidade

  • Residenciais/Móveis para sites complexos
  • Pool de IPs grande (1000+ para rotação)
  • Geotargeting para o país de destino
  • Sessões fixas para processos multi-etapas

2. Navegadores Headless com anti-detection

  • Puppeteer-extra-stealth — oculta sinais de headless
  • Playwright Stealth — análogo para Playwright
  • undetected-chromedriver — para Selenium Python
  • Randomização de fingerprints — WebGL, Canvas, Fontes

3. Rotação inteligente e Rate Limiting

  • Máximo de 5-10 solicitações/minuto por IP
  • Randomização de atrasos (intervalos não fixos)
  • Rotação adaptativa — trocamos o IP ao detectar rate limiting
  • Pausas noturnas — imitando o sono do usuário

4. Conjunto completo de cabeçalhos

  • 15-20 HTTP headers realistas
  • Cadeia de Referer (de onde você veio)
  • Accept-Language de acordo com a geolocalização do proxy
  • Cabeçalhos Sec-CH-UA para Chrome

💡 Pro-tip: Abordagem Combinada

Para máxima eficiência, combine: Proxies Residenciais + Puppeteer-stealth + Rotação inteligente + Cabeçalhos completos + Atrasos de 2-5 seg. Isso garante uma taxa de sucesso de 95%+ mesmo em sites complexos.

🇪🇺 GDPR e proteção de dados

GDPR (Regulamento Geral sobre a Proteção de Dados) é a lei de proteção de dados mais rigorosa do mundo. Multas de até €20 milhões ou 4% do faturamento global.

Requisitos chave do GDPR para scraping

Base Legal

Você precisa de uma base legal para o processamento de dados pessoais:

  • Consentimento — quase impossível para scraping
  • Legitimate Interest — pode ser aplicável, mas requer justificativa
  • Obrigação Legal — para fins de conformidade

Minimização de Dados

Colete apenas os dados necessários. Não raspe tudo "por via das dúvidas". E-mails, telefones, endereços — apenas se forem estritamente necessários.

Limitação da Finalidade

Use os dados apenas para a finalidade declarada. Raspou para análise de mercado — não pode vender como base de e-mails.

Direito ao Esquecimento

As pessoas podem solicitar a remoção de seus dados. Você precisa de um procedimento para lidar com tais solicitações.

🚨 Altos Riscos sob o GDPR

  • Parsing de endereços de e-mail para spam — multa garantida
  • Coleta de dados biométricos (fotos de rostos) — dados especialmente sensíveis
  • Dados de crianças — proteção reforçada
  • Dados médicos — estritamente proibido sem bases legais especiais

💡 Recomendação: Se estiver raspando dados da UE, consulte um advogado. GDPR não é brincadeira. Para segurança, evite dados pessoais e concentre-se em fatos, preços e produtos.

🎯 Casos de uso reais

💰

Monitoramento de preços de concorrentes

Tarefa: Rastrear preços na Amazon/eBay para precificação dinâmica.

Solução: Proxies Residenciais EUA + Scrapy + MongoDB. Parsing de 10.000 produtos 2 vezes ao dia. Taxa de sucesso de 92%.

Proxy: Residenciais $200/mês

ROI: Aumento de lucro de 15%

📊

Monitoramento de SEO

Tarefa: Rastrear posições do site no Google para 1000 palavras-chave em diferentes países.

Solução: Proxies Residenciais de 20 países + Python requests + PostgreSQL. Coleta diária de SERP.

Proxy: Residenciais $150/mês

Alternativa: APIs de serviços de SEO ($500+/mês)

🤖

Coleta de dados para modelos de ML

Tarefa: Coletar 10 milhões de artigos de notícias para treinar um modelo NLP.

Solução: Proxies Data Center + Scrapy distribuído + Armazenamento S3. Observância do robots.txt e atrasos.

Proxy: Data Center $80/mês

Tempo: 2 meses de coleta

📱

Parsing do Instagram/TikTok

Tarefa: Monitorar menções à marca em redes sociais para análise de marketing.

Solução: Proxies Móveis + Puppeteer-stealth + Fila Redis. Sessões fixas de 10 minutos por IP.

Proxy: Móveis $300/mês

Taxa de Sucesso: 96%

🏠

Agregador de imóveis

Tarefa: Coletar anúncios de 50 sites imobiliários para comparação.

Solução: Mix de proxies Data Center + Residenciais + Scrapy + Elasticsearch. Atualização a cada 6 horas.

Proxy: Misto $120/mês

Volume: 500K anúncios/dia

📈

Dados financeiros

Tarefa: Parsing de cotações de ações, notícias para um algoritmo de negociação.

Solução: Proxies Residenciais Premium + Python asyncio + TimescaleDB. Atualização em tempo real.

Proxy: Premium $400/mês

Latência: <100ms crítico

📊 Monitoramento e análise

Métricas Chave de Parsing

95%+

Taxa de Sucesso

Respostas HTTP 200

<5%

Taxa de Banimento

Respostas 403/429

2-3s

Tempo Médio de Resposta

Latência do proxy

$0.05

Custo por 1K Páginas

Custo do proxy

Ferramentas de Monitoramento

  • Prometheus + Grafana — métricas em tempo real
  • ELK Stack — logging e análise
  • Sentry — rastreamento de erros
  • Dashboard personalizado — taxa de sucesso, saúde do proxy, custos

🔧 Solução de problemas típicos

Erros Comuns e Soluções

❌ HTTP 403 Forbidden

Causa: IP banido ou detectado como proxy

Solução: Troque para proxy residencial/móvel, adicione cabeçalhos realistas, use navegador headless

❌ HTTP 429 Too Many Requests

Causa: Limite de taxa excedido

Solução: Aumente os atrasos (3-5 seg), rotacione proxies com mais frequência, reduza as solicitações concorrentes

❌ CAPTCHA em cada solicitação

Causa: O site detecta automação

Solução: Puppeteer-stealth, proxies móveis, sessões fixas, mais atrasos

❌ Conteúdo vazio / JavaScript não carrega

Causa: O site usa renderização dinâmica

Solução: Use Selenium/Puppeteer em vez de requests, espere o JS carregar

❌ Velocidade de parsing lenta

Causa: Solicitações sequenciais

Solução: Assincronicidade (asyncio, aiohttp), solicitações concorrentes, mais proxies

🚀 Técnicas avançadas de parsing

Para desenvolvedores experientes

1. Mascaramento de Fingerprint HTTP/2

Sistemas anti-bot modernos analisam a ordem dos frames e cabeçalhos HTTP/2. Bibliotecas como curl-impersonate imitam navegadores específicos no nível TLS/HTTP.

# Usando curl-impersonate para imitar perfeitamente o Chrome curl_chrome116 --proxy http://user:pass@gate.proxycove.com:8080 https://example.com

2. Algoritmos de Rotação de Proxy Inteligentes

Não apenas rotação aleatória, mas algoritmos inteligentes:

  • Least Recently Used (LRU): usamos proxies que não foram usados recentemente
  • Weighted by Success Rate: usamos proxies com maior taxa de sucesso com mais frequência
  • Geographic Clustering: agrupamos solicitações para o mesmo site usando proxies do mesmo país
  • Adaptive Throttling: desaceleramos automaticamente ao detectar rate limiting

3. Captura e Solução de CAPTCHA

Quando as CAPTCHAs são inevitáveis, use:

  • 2Captcha API: solução por pessoas reais ($0.5-3 por 1000 captchas)
  • hCaptcha-solver: soluções de IA para captchas simples
  • Audio CAPTCHA: reconhecimento via speech-to-text
  • reCAPTCHA v3: mais difícil de contornar, requer residenciais + stealth

4. Arquitetura de Scraping Distribuída

Para projetos em grande escala (1M+ páginas/dia):

  • Padrão Master-Worker: fila de tarefas centralizada (Redis, RabbitMQ)
  • Pods Kubernetes: escalonamento horizontal de scrapers
  • Bancos de dados distribuídos: Cassandra, MongoDB para armazenamento
  • Filas de Mensagens: processamento assíncrono de resultados
  • Stack de Monitoramento: Prometheus + Grafana para métricas

💎 Nível Empresarial: gerenciamento de proxies

Para grandes equipes e projetos, implemente:

  • Pool de proxy centralizado: gerenciamento unificado para todos os projetos
  • Verificação de saúde: verificação automática da funcionalidade do proxy
  • Detecção de banimento: modelos de ML para detectar IPs banidos
  • Rastreamento de custos: contabilidade de custos por projeto e equipe
  • Gateway de API: API interna para obter proxies

🎯 Conclusões e Recomendações

📝 Recomendações Finais 2025

1️⃣ Escolha de Proxy

Sites simples: Proxies Data Center ($1.5/GB)
E-commerce, SEO: Proxies Residenciais ($2.7/GB)
Redes sociais, bancos: Proxies Móveis ($3.8/GB)
Combinação: 80% data center + 20% residencial para otimização de custos

2️⃣ Ferramentas

Python requests: para APIs e páginas simples
Scrapy: para scraping em larga escala (1M+ páginas)
Puppeteer/Selenium: para sites pesados em JS
Plugins Stealth: obrigatórios para contornar a detecção

3️⃣ Estratégia de Rotação

Rotativo: para seleção massiva de dados
Fixo (Sticky): para gerenciar contas e formulários
Atrasos: 2-5 seg randomizados
Rate limit: máximo de 10 req/min por IP

4️⃣ Legalidade

• Faça scraping de dados apenas públicos
• Respeite o robots.txt
• Evite dados pessoais (riscos GDPR)
• Consulte um advogado para projetos comerciais

5️⃣ ProxyCove — A escolha ideal

• Todos os tipos de proxy: Móvel, Residencial, Data Center
• Ambos os modos: Sessões Rotativas e Fixas
• Geotargeting em 195+ países
• Pay-as-you-go sem taxa de assinatura
• Suporte 24/7 em português

🏆 Vantagens da ProxyCove para Scraping

🌍

195+ Países

Cobertura global

99.9% Uptime

Estabilidade

🔄

Rotação Automática

Rotação integrada

👨‍💼

Suporte 24/7

Sempre disponível

💰

Pay-as-you-go

Sem taxa de assinatura

🔐

Autenticação IP/Login

Autenticação flexível

Comece seu scraping de sucesso com ProxyCove!

Cadastre-se em 2 minutos, adicione fundos com o código promocional ARTHELLO e receba um bônus de +$1.3. Sem taxa de assinatura — pague apenas pelo tráfego!

Melhores preços de proxy para web scraping em 2025:

🎁 Use o código promocional ARTHELLO no seu primeiro depósito e receba $1.3 adicionais na conta

Obrigado pela sua atenção! Esperamos que este guia o ajude a construir um sistema de web scraping eficaz em 2025. Boa sorte com o parsing! 🚀