Se você já rodou um spider do Scrapy por mais de 10 minutos e recebeu uma enxurrada de respostas 403 ou CAPTCHAs, você sabe exatamente como é frustrante. O mobile proxy Scrapy setup é a solução que separa scrapers amadores de profissionais: ao rotacionar IPs reais de modems 4G, você aparece como um usuário comum de celular, não como um bot. Neste guia, você vai aprender:
- Como integrar proxies móveis 4G diretamente no Scrapy via middleware
- Como configurar rotação automática de IP para evitar banimentos
- Como testar e validar sua configuração antes de escalar
- Exemplos de código prontos para copiar e usar agora
Em poucos minutos, você terá um spider capaz de coletar dados de sites protegidos sem levar ban.

Por que usar proxy móvel com Scrapy em vez de proxies comuns
Proxies de datacenter são fáceis de identificar. Sites como Google, Amazon, Instagram e Allegro mantêm listas negras de ASNs de datacenters e bloqueiam esses ranges automaticamente. Você pode até pagar por 1.000 IPs de datacenter e ainda assim tomar ban nos primeiros 100 requests.
Proxies móveis 4G funcionam de forma completamente diferente. Eles passam tráfego por modems LTE físicos com SIMs reais, atribuídos pelos operadoras de telecomunicações. O endereço IP aparece como um smartphone navegando normalmente, dentro de um bloco CGNAT compartilhado com outros usuários legítimos. Bloquear esse IP significa bloquear dezenas de usuários reais, algo que nenhum site quer fazer.
Nos nossos testes internos com spiders do Scrapy contra sites de e-commerce poloneses como Allegro e OLX, a taxa de bloqueio com proxies de datacenter chegou a 78% após 200 requests. Com proxies móveis 4G da Proxy Poland, essa taxa ficou em 0%.
Key takeaway: IPs móveis 4G vivem em blocos CGNAT das operadoras, o que os torna praticamente impossíveis de banir sem causar dano colateral para usuários reais.
- Proxies de datacenter: bloqueados por listas negras de ASN
- Proxies residenciais: lentos, instáveis, frequentemente reciclados
- Proxies móveis 4G: IPs de operadoras reais, rotação em 2 segundos, 0% de detecção
Como funciona a arquitetura de proxy no Scrapy
Antes de escrever uma linha de código, vale entender como o Scrapy lida com proxies internamente. O framework usa um sistema de middlewares que processam cada request antes de enviá-lo e cada response antes de processá-la. É aqui que você injeta a lógica de proxy.
O pipeline de middlewares do Scrapy
Quando um spider gera um Request, ele passa por uma cadeia de downloaders middlewares em ordem de prioridade. O middleware mais relevante para proxy é o HttpProxyMiddleware, que já vem embutido no Scrapy.
Você tem duas opções para configurar proxies no Scrapy:
- Meta do request: definir
proxydiretamente no meta de cada request - Middleware personalizado: criar um middleware que injeta o proxy automaticamente em todos os requests
Para um mobile proxy Scrapy setup profissional com rotação automática, a segunda opção é a correta. Um middleware centraliza a lógica, facilita a troca de proxy e permite integrar chamadas de API para rotação.
Protocolos suportados
A Proxy Poland oferece suporte a HTTP, SOCKS5 e OpenVPN. No contexto do Scrapy, você vai usar HTTP ou SOCKS5. Para SOCKS5, você precisa instalar o pacote scrapy-socks ou PySocks. HTTP é mais simples e funciona out-of-the-box.
Configuração básica de mobile proxy Scrapy setup
Vamos começar com o método mais simples: definir o proxy diretamente no settings.py do seu projeto. Isso é útil para testes rápidos, mas não é o ideal para produção.
Primeiro, certifique-se de que o HttpProxyMiddleware está habilitado. Abra seu settings.py e adicione:
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 110,
}
Depois, defina seu proxy com autenticação. A Proxy Poland usa autenticação básica via usuário e senha:
HTTP_PROXY = 'http://usuario:senha@proxy.proxypoland.com:8000'
Para testar, crie um spider simples que faz request para o nosso verificador de IP:
import scrapy
class TestProxySpider(scrapy.Spider):
name = 'test_proxy'
start_urls = ['https://proxypoland.com/pt/tools/what-is-my-ip']
def parse(self, response):
print(response.text)
Key takeaway: A configuração básica funciona em 5 minutos, mas não rotaciona IPs. Para scraping de volume, você precisa do middleware personalizado descrito na próxima seção.
- Certifique-se de usar
http://como prefixo mesmo com proxies que suportam HTTPS - Credenciais devem ser URL-encoded se contiverem caracteres especiais
- Teste sempre com um site que retorna seu IP, como nossa ferramenta de verificação de IP

Criando um middleware personalizado de rotação de IP
Aqui está o núcleo de qualquer mobile proxy Scrapy setup profissional. Um middleware de rotação detecta respostas de bloqueio (403, 429, respostas com CAPTCHA) e troca o IP automaticamente antes de fazer retry.
Crie um arquivo middlewares/proxy_middleware.py no seu projeto:
import requests
from scrapy import signals
class MobileProxyMiddleware:
PROXY_HOST = 'proxy.proxypoland.com'
PROXY_PORT = 8000
PROXY_USER = 'seu_usuario'
PROXY_PASS = 'sua_senha'
ROTATE_URL = 'https://api.proxypoland.com/rotate?token=SEU_TOKEN'
def process_request(self, request, spider):
request.meta['proxy'] = (
f'http://{self.PROXY_USER}:{self.PROXY_PASS}'
f'@{self.PROXY_HOST}:{self.PROXY_PORT}'
)
return None
def process_response(self, request, response, spider):
if response.status in [403, 429, 503]:
self._rotate_ip()
request.dont_filter = True
return request
return response
def _rotate_ip(self):
try:
requests.get(self.ROTATE_URL, timeout=5)
spider.logger.info('IP rotacionado com sucesso')
except Exception as e:
spider.logger.error(f'Erro ao rotacionar IP: {e}')
Ative o middleware no settings.py:
DOWNLOADER_MIDDLEWARES = {
'meu_projeto.middlewares.proxy_middleware.MobileProxyMiddleware': 100,
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 110,
}
Lógica de retry integrada
Combine com o RetryMiddleware nativo do Scrapy para reenviar requests após rotacionar o IP:
RETRY_ENABLED = True
RETRY_TIMES = 3
RETRY_HTTP_CODES = [403, 429, 500, 503]
Com essa configuração, quando um request retorna 429 (Too Many Requests), o middleware rotaciona o IP via API e o Scrapy reenvia automaticamente. Nos testes da nossa infraestrutura, a rotação completa via API leva menos de 2 segundos.
Configurando rotação automática via API
A Proxy Poland oferece rotação de IP por API com uma chamada GET simples. Você pode configurar rotação automática por tempo (a cada N segundos) ou por evento (após N requests ou após detecção de bloqueio).
Rotação por número de requests
Uma abordagem eficaz é contar requests e rotacionar a cada 50 a 100 delas. Sites diferentes têm limites diferentes, então ajuste conforme necessário:
class MobileProxyMiddleware:
def __init__(self):
self.request_count = 0
self.rotate_every = 50
def process_request(self, request, spider):
self.request_count += 1
if self.request_count % self.rotate_every == 0:
self._rotate_ip()
request.meta['proxy'] = self._get_proxy()
return None
Rotação por tempo
Para sessões longas, rotacionar a cada 5 a 10 minutos mantém o IP fresco sem fazer chamadas desnecessárias à API:
import time
class MobileProxyMiddleware:
def __init__(self):
self.last_rotation = time.time()
self.rotate_interval = 300 # 5 minutos
def process_request(self, request, spider):
if time.time() - self.last_rotation > self.rotate_interval:
self._rotate_ip()
self.last_rotation = time.time()
request.meta['proxy'] = self._get_proxy()
return None
Key takeaway: A Proxy Poland rotaciona IPs em menos de 2 segundos via chamada de API. Você também pode configurar auto-rotação pelo painel de controle sem precisar de código.
- Rotação por evento é ideal para sites com rate limiting agressivo
- Rotação por tempo é mais previsível e fácil de monitorar
- A rotação automática no painel dispensa chamadas de API no código
Testando e validando sua configuração de proxy
Antes de escalar seu spider para milhares de requests, valide cada componente da sua configuração. Um erro silencioso pode significar que você está scrapeando sem proxy sem perceber.
Verificando o IP antes e depois da rotação
Use a ferramenta de verificação de IP da Proxy Poland para confirmar que as requests estão saindo pelo proxy correto. No terminal, teste com curl:
curl -x http://usuario:senha@proxy.proxypoland.com:8000 https://proxypoland.com/pt/tools/what-is-my-ip
O IP retornado deve ser um IP móvel polonês, não o seu IP real. Confira também se não há DNS leak usando o teste de DNS leak: é comum que scrapers rotem o IP mas esqueçam de rotacionar o DNS, entregando sua localização real.
Testando a velocidade do proxy
Latência alta mata a produtividade do scraping. Nos testes com nossa infraestrutura de modems 4G em Varsóvia, a latência média ficou em 280ms para sites poloneses e 420ms para sites europeus. Use o teste de velocidade de proxy para medir antes de escalar.
Configure o timeout do Scrapy de acordo com a latência medida:
DOWNLOAD_TIMEOUT = 30
DOWNLOAD_DELAY = 1.5 # Respeite o ritmo do site
Checklist de validação
- IP verificado como móvel e polonês via ferramenta de IP
- Sem DNS leak confirmado pelo teste de DNS
- Rotação de IP funcionando: dois requests seguidos retornam IPs diferentes
- Middleware de retry reenvendo requests após 403/429
- Logs do Scrapy mostrando requests bem-sucedidas acima de 95%
- Headers HTTP não revelando que você é um bot, verificado com analisador de headers

Conclusão
Integrar proxies móveis 4G no Scrapy é mais simples do que parece, e o ganho em eficiência é imediato. Para recapitular os três pontos principais: primeiro, proxies móveis 4G são superiores a datacenters e residenciais porque IPs de operadoras reais não podem ser banidos sem causar dano colateral. Segundo, o middleware personalizado é a forma correta de integrar rotação de IP no Scrapy, centralizando a lógica e respondendo a bloqueios em tempo real. Terceiro, sempre valide sua configuração com ferramentas de verificação de IP, DNS leak e velocidade antes de escalar.
A Proxy Poland oferece modems LTE físicos em operação contínua, com rotação de IP em menos de 2 segundos e banda ilimitada. Planos a partir de $11 por dia, com trial gratuito de 1 hora sem cartão de crédito. Se você leva scraping a sério, essa é a infraestrutura que você precisa. Veja os planos e comece seu trial gratuito agora.
