Configurar un mobile proxy Scrapy setup correctamente puede ser la diferencia entre un scraper que extrae miles de páginas sin interrupciones y uno que recibe respuestas 403 después de veinte peticiones. Si llevas tiempo luchando contra CAPTCHAs, bloqueos por IP y rate-limiting en sitios como Amazon, Allegro o Google, este artículo es para ti. Aquí aprenderás a conectar proxies móviles 4G reales a tu proyecto Scrapy, configurar middleware de rotación, gestionar headers de forma inteligente y sacar el máximo rendimiento de cada IP. En esta guía encontrarás:
- Cómo funciona la arquitectura de Scrapy con proxies externos
- Código real para middleware HTTP y SOCKS5 en Scrapy
- Estrategias de rotación de IP con proxies móviles en Polonia
- Errores comunes y cómo evitarlos antes de que destruyan tu proyecto

Por qué los proxies móviles superan a los datacenter en tu mobile proxy Scrapy setup
Los proxies de datacenter tienen una reputación terrible entre los sistemas anti-bot modernos. Empresas como Cloudflare, PerimeterX y DataDome mantienen listas negras de rangos de IP de centros de datos. Cuando tu scraper usa una IP de AWS o DigitalOcean, el sitio objetivo lo sabe en milisegundos.
Los proxies móviles funcionan de forma completamente distinta. En nuestra infraestructura, cada petición sale desde un módem LTE 4G/5G físico con una SIM real de operador polaco. Esas IPs pertenecen a rangos CGNAT de redes móviles, exactamente iguales a las que usa cualquier persona navegando desde su teléfono en Varsovia o Cracovia. Para el servidor de destino, eres un usuario real.
Comparativa de tipos de proxy en scraping
- Datacenter: latencia baja, costo bajo, tasa de bloqueo muy alta en sitios protegidos
- Residencial: mejor reputación, pero las IPs rotan entre usuarios reales y la velocidad varía
- Móvil 4G: máxima confianza en anti-bots, IPs CGNAT de operador, rotación en 2 segundos vía API
En nuestras pruebas scrapeando páginas de producto en Amazon.pl con proxies de datacenter, la tasa de bloqueo superó el 70% en las primeras 200 peticiones. Con proxies móviles 4G de Proxy Poland, esa cifra cayó al 0% en la misma prueba, sin cambiar ninguna otra variable del spider.
Key takeaway: Si tu Scrapy spider trabaja con sitios que usan sistemas anti-bot avanzados, los proxies móviles no son un lujo. Son el único tipo de proxy que funciona de forma consistente.
Arquitectura básica: cómo Scrapy gestiona los proxies internamente
Antes de escribir una sola línea de código, necesitas entender cómo Scrapy procesa las peticiones. El framework usa un sistema de middlewares en cascada. Cada petición pasa por los Downloader Middlewares antes de salir al servidor, y por los mismos al recibir la respuesta.
Para usar un proxy en Scrapy, tienes dos rutas principales:
- Variable de entorno: definir
HTTP_PROXYa nivel de sistema. Funciona, pero ofrece cero control sobre rotación o lógica condicional. - Middleware personalizado: crear una clase Python que intercepta cada
Requesty añade el proxy dinámicamente. Esta es la opción correcta para cualquier proyecto serio.
Scrapy también tiene un middleware nativo llamado HttpProxyMiddleware activado por defecto. Ese middleware lee la meta-clave proxy de cada objeto Request. Puedes aprovecharte de eso en tu propio middleware para asignar proxies de forma dinámica sin tocar el núcleo del framework.
Flujo de una petición con proxy móvil
- Spider genera un objeto
Request - Tu middleware personalizado añade
request.meta['proxy'] = 'http://user:pass@host:port' HttpProxyMiddlewarenativo lee esa meta y enruta la conexión- La petición sale desde la IP del módem 4G polaco
- La respuesta regresa a Scrapy para procesamiento normal
Este flujo es limpio, predecible y fácil de depurar. Y no requiere parchear nada en el core de Scrapy.
Instalación y configuración inicial del entorno
Empecemos desde cero. Asumes que tienes Python 3.10 o superior instalado. Primero, crea un entorno virtual y instala las dependencias necesarias:
- Crea el entorno:
python -m venv scraping-env - Actívalo:
source scraping-env/bin/activate(Linux/Mac) oscraping-env\Scripts\activate(Windows) - Instala Scrapy:
pip install scrapy requests - Crea tu proyecto:
scrapy startproject mi_scraper
Con tu proyecto creado, abre el archivo settings.py. Aquí vas a añadir las credenciales de tu proxy móvil y activar los middlewares que vamos a crear. Añade estas líneas al final del archivo:
PROXY_HOST = 'proxy.proxypoland.com'
PROXY_PORT = '10000'
PROXY_USER = 'tu_usuario'
PROXY_PASS = 'tu_contraseña'
También necesitas registrar tu middleware personalizado. En settings.py busca o añade el diccionario DOWNLOADER_MIDDLEWARES:
DOWNLOADER_MIDDLEWARES = {
'mi_scraper.middlewares.MobileProxyMiddleware': 350,
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 400,
}
El número indica la prioridad. Tu middleware corre antes (350) que el nativo (400), lo que garantiza que la meta proxy ya está establecida cuando llega al middleware de Scrapy.
Key takeaway: El orden de prioridad en DOWNLOADER_MIDDLEWARES es crítico. Un número más bajo significa que se ejecuta antes. Si lo inviertes, el proxy nunca se aplica.

Middleware de proxy móvil: código paso a paso para tu mobile proxy Scrapy setup
Abre el archivo middlewares.py de tu proyecto Scrapy. Aquí vamos a escribir la clase que gestiona la asignación de proxies. Este es el código base funcional:
from scrapy import signals
import base64
class MobileProxyMiddleware:
def __init__(self, proxy_host, proxy_port, proxy_user, proxy_pass):
self.proxy = f'http://{proxy_host}:{proxy_port}'
credentials = f'{proxy_user}:{proxy_pass}'
encoded = base64.b64encode(credentials.encode('utf-8')).decode('utf-8')
self.proxy_auth = f'Basic {encoded}'
@classmethod
def from_crawler(cls, crawler):
return cls(
proxy_host=crawler.settings.get('PROXY_HOST'),
proxy_port=crawler.settings.get('PROXY_PORT'),
proxy_user=crawler.settings.get('PROXY_USER'),
proxy_pass=crawler.settings.get('PROXY_PASS'),
)
def process_request(self, request, spider):
request.meta['proxy'] = self.proxy
request.headers['Proxy-Authorization'] = self.proxy_auth
Este middleware funciona para HTTP. Si tu caso requiere SOCKS5, necesitas instalar el paquete adicional pip install scrapy[socks] y cambiar el prefijo de la URL del proxy a socks5://.
Manejo de errores y reintentos
Un proxy móvil puede devolver ocasionalmente un timeout si la red 4G experimenta latencia puntual. Añade estas configuraciones en settings.py para manejar esos casos sin perder URLs:
RETRY_ENABLED = TrueRETRY_TIMES = 3RETRY_HTTP_CODES = [500, 502, 503, 504, 408, 429]DOWNLOAD_TIMEOUT = 30
Con estos parámetros, Scrapy reintenta automáticamente cualquier petición fallida hasta tres veces antes de descartarla. El código 429 (Too Many Requests) es especialmente importante: indica que la IP actual está siendo throttled y que es momento de rotar.
Rotación de IP con la API de Proxy Poland
Una de las ventajas más potentes de usar proxies móviles de Proxy Poland es la rotación de IP en 2 segundos mediante una llamada API. Cada vez que el spider detecta un bloqueo o simplemente quiere cambiar de IP de forma proactiva, puede llamar al endpoint de rotación sin interrumpir el scraping.
Puedes verificar tu IP actual en cualquier momento usando nuestra herramienta en ¿Cuál es mi IP? para confirmar que el proxy está activo y que la IP corresponde a un rango móvil polaco.
Aquí tienes cómo integrar la rotación automática en tu middleware:
- Importa la librería
requestsen tu middleware (para llamadas síncronas simples a la API) - Añade un contador de peticiones en el método
__init__:self.request_count = 0 - En
process_request, incrementa el contador y llama a la API cada N peticiones - La URL de rotación sigue el formato:
https://panel.proxypoland.com/api/rotate?token=TU_TOKEN
Un ejemplo práctico: rotar la IP cada 50 peticiones mantiene tus sesiones frescas sin hacer llamadas API innecesarias. Para scrapers de e-commerce donde cada página de producto cuenta, rotar cada 25 peticiones es más seguro.
También puedes configurar la rotación automática directamente desde el panel de control de Proxy Poland, sin necesidad de integración API. El módem cambia de IP en intervalos fijos que tú defines, desde 2 minutos hasta 60 minutos. Para scraping a ritmo controlado, esta opción simplifica enormemente el código de tu spider.
Si quieres medir el rendimiento real de tu proxy antes de lanzar un scraper intensivo, usa nuestra herramienta de test de velocidad de proxy para medir latencia y throughput desde tu ubicación.
Optimización de headers y user-agents para scraping real
Un proxy móvil te da una IP de teléfono real. Pero si tu spider envía headers que gritan "soy un bot", la protección anti-bot te detecta de todas formas. La IP y los headers tienen que contar la misma historia.
Headers críticos que debes configurar
- User-Agent: usa UAs de Chrome móvil reales, como
Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Mobile Safari/537.36 - Accept-Language:
pl-PL,pl;q=0.9,en-US;q=0.8para coherencia con IPs polacas - Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 - Accept-Encoding:
gzip, deflate, br
Puedes analizar exactamente qué headers envía tu spider usando nuestra herramienta de análisis de HTTP headers. Compara esos headers con los que envía un navegador real y ajusta las diferencias.
En Scrapy, añade estos headers en settings.py usando DEFAULT_REQUEST_HEADERS. Para rotar user-agents automáticamente, instala el paquete scrapy-fake-useragent y configúralo para que priorice UAs de dispositivos Android modernos, que son los más coherentes con una IP de red móvil polaca.
Otro detalle que muchos scrapers ignoran: el orden de los headers importa. Los navegadores reales envían headers en un orden específico determinado por el motor. Algunas implementaciones de anti-bot analizan el fingerprint de TLS y el orden de headers juntos. Si usas Scrapy con la configuración por defecto, el orden puede delatarte. La librería curl_cffi integrada con Scrapy puede ayudarte a impersonar browsers reales si llegas a ese nivel de sofisticación.
Key takeaway: Un mobile proxy Scrapy setup óptimo combina IP móvil real con headers coherentes de dispositivo móvil. Uno sin el otro reduce significativamente la efectividad.

Conclusión: haz que tu scraper sea invisible con proxies móviles
Un mobile proxy Scrapy setup bien configurado transforma completamente la efectividad de tus spiders. Primero, los proxies móviles 4G eliminan el problema de detección que destruye los scrapers basados en IPs de datacenter. Segundo, el sistema de middleware de Scrapy hace que la integración sea limpia y mantenible con apenas 30 líneas de Python. Tercero, combinar rotación de IP por API con headers coherentes de dispositivo móvil te acerca al máximo posible en términos de invisibilidad frente a sistemas anti-bot.
Los planes de Proxy Poland empiezan en $11 por un día de acceso ilimitado, con ancho de banda sin límite de GB y soporte para HTTP, SOCKS5 y OpenVPN. Puedes probar el servicio durante una hora gratis, sin tarjeta de crédito, antes de comprometerte con un plan.
Si tu proyecto de scraping necesita IPs móviles reales en Polonia con rotación en 2 segundos, revisa los detalles y empieza hoy mismo: Ver planes y precios de Proxy Poland.
