ProxySEO / Blog / Escalar un scraper de Scrapy con proxies dedicados
Proxies

Escalar un scraper de Scrapy con proxies dedicados

· 7 min de lectura
escalar scraper Scrapy

Cuando tu scraper pasa de miles a millones de páginas, llega el momento en que Scrapy se queda corto tal cual. Subes la concurrencia y, casi de inmediato, los objetivos detectan el tráfico: errores 403, CAPTCHAs, baneos de IP que te dejan el pipeline tumbado. Aquí vamos a ver por qué pasa esto, cómo configurar el autothrottling de Scrapy para parecer un usuario legítimo y por qué los proxies dedicados —los de ProxySEO, por ejemplo, con IPs españolas, tráfico ilimitado y soporte MCP para agentes IA— son la pieza que te falta para escalar sin fricción.

Por qué tu scraper de Scrapy se bloquea al escalar

Si lanzas Scrapy con la configuración por defecto, todas las peticiones salen de una única IP y con un user-agent que lo delata. A pequeña escala nadie se fija. Pero en cuanto aprietas el ritmo, aparecen tres problemas bastante típicos:

  • Patrón de peticiones no humano: 50 requests por segundo desde la misma IP no pasa inadvertido. Los sistemas anti-bot (Cloudflare, Akamai, Datadome) lo cazan en segundos.
  • Huella de Scrapy: el framework envía, por defecto, cabeceras como Accept-Encoding y un orden de headers muy reconocible. Un sitio bien configurado puede identificarte sin mirar siquiera el contenido.
  • Rate limiting por IP: muchos servidores imponen límites del tipo «N peticiones por minuto por IP». Pasarte se traduce en un 429 o, directamente, en un baneo temporal.

El error que veo una y otra vez es intentar arreglarlo bajando CONCURRENT_REQUESTS. Funciona, sí. Pero destroza tu throughput, porque escalar un scraper no consiste en ir más despacio: consiste en repartir la carga entre varias IPs dedicadas que no comparten reputación entre ellas.

Autothrottling en Scrapy: cómo funciona y cómo configurarlo

Scrapy trae de serie una extensión llamada AutoThrottle que ajusta la latencia entre peticiones según cómo responde el servidor. Si el objetivo contesta rápido y sin errores, acelera. Si nota latencias crecientes o respuestas lentas, frena solo. Sencillo y eficaz.

Para activarlo, esto va en tu settings.py:

  1. AUTOTHROTTLE_ENABLED = True: enciende la extensión.
  2. AUTOTHROTTLE_START_DELAY = 1.0: latencia inicial de un segundo.
  3. AUTOTHROTTLE_MAX_DELAY = 15.0: techo máximo para cuando el servidor sufre.
  4. AUTOTHROTTLE_TARGET_CONCURRENCY = 8.0: estimación de peticiones paralelas que el sitio tolera.

Un consejo práctico: combina el autothrottling con RETRY_TIMES = 2 y vigila los códigos 429 y 503 en tus logs. Si aparecen picos, el target te está limitando; mejor rotar de IP antes de que llegue el baneo. Con los proxies SOCKSv5 dedicados de ProxySEO puedes asignar una IP española distinta a cada worker de Scrapy y dejar que el autothrottle trabaje por worker de forma independiente. El throughput total se multiplica sin disparar alarmas.

Tip: activa también HTTPCACHE_ENABLED = True mientras desarrollas, para no repetir peticiones costosas cada vez que tocas la configuración.

Proxies dedicados vs compartidos: cuál necesitas para escalar

Llega la hora de elegir proxy, y aquí se decide si tu pipeline será estable o un proyecto lleno de reintentos:

  • Proxies compartidos: más baratos, claro. Pero la IP la compartes con otros usuarios, y si alguien la quema con spam, tu scraper hereda el baneo. Además, la velocidad fluctúa justo cuando más la necesitas (suele pasar).
  • Proxies dedicados: la IP es tuya y solo tuya. Controlas su reputación, el rendimiento es predecible y puedes mantener sesiones largas —cookies, logins— sin cortes.

Para escalar un scraper de Scrapy en serio, los dedicados son la única opción que recomendaría. Un proxy dedicado con IP española de ProxySEO garantiza que ninguna actividad ajena contamine tu reputación ante los sitios objetivo, con tráfico ilimitado para el pipeline y soporte MCP que permite a tus agentes IA gestionar y rotar los proxies con instrucciones en lenguaje natural, sin tocar configuración a mano. Invierte en dedicados desde el principio. Cambiar a mitad de proyecto sale más caro que hacerlo bien desde el inicio.

Cómo integrar proxies rotatorios en tu middleware de Scrapy (código real)

Lo más limpio, cuando trabajas con proxies dedicados, es escribir tu propio middleware. Con listas públicas la cosa se complica; con dedicados no hace falta tanto: el middleware solo reparte credenciales y, si hace falta, gestiona sesiones pegajosas (sticky sessions) para logins o flujos que abarcan varias páginas.

Empieza definiendo los proxies en settings.py:

  • PROXYSEO_PROXIES: lista con formato http://usuario:password@gate.proxyseo.es:8000
  • PROXY_STICKY: True para mantener la misma IP por spider. Imprescindible en scraping autenticado.

El middleware mínimo quedaría así:

En middlewares.py implementa la clase ProxySEOMiddleware con un método process_request que asigne request.meta[‘proxy’] usando random.choice(self.proxies). Luego, en process_exception, captura el fallo y marca esa IP como caída durante 60 segundos antes de reintentar con otra del pool. Con proxies dedicados de ProxySEO las caídas son raras, eso sí. Pero el backoff te ahorra requests perdidos justo en los picos de carga, que es cuando menos lo puedes permitir.

Dos consejos que me han ahorrado quebraderos de cabeza:

  1. Rota por exito, no solo por error. Cambia de IP cada N peticiones exitosas (50, por ejemplo). Reduce huella frente a rate limits, y el coste es casi nulo.
  2. Combina AUTO_THROTTLE con rotacion. AUTO_THROTTLE_ENABLED = True junto a un pool de IPs españolas dedicadas te deja subir la concurrencia sin que salten bloqueos por todas partes.

¿Trabajas con agentes IA? El soporte MCP de ProxySEO permite que el propio agente consulte el estado del pool, rote credenciales o active sesiones sticky con instrucciones en lenguaje natural. Sin tocar el middleware.

Escalar scraper Scrapy con ProxySEO: configuración recomendada paso a paso

Con el middleware listo, esta es la configuración que recomendamos para llevar un scraper Scrapy a producción con proxies dedicados españoles:

  1. Contrata proxies dedicados HTTP/s o SOCKSv5 con IPs españolas de ProxySEO. SOCKSv5 si tu scraper mueve tráfico no HTTP o necesitas compatibilidad a nivel de socket.
  2. Ajusta la concurrencia por dominio: CONCURRENT_REQUESTS_PER_DOMAIN = 8-16 por IP dedicada. Con 10 IPs multiplicarás por 10 la concurrencia global. Así de directo.
  3. Activa reintentos inteligentes: RETRY_TIMES = 3 y RETRY_HTTP_CODES = [500, 502, 503, 504, 408, 429], delegando el cambio de IP al middleware.
  4. Configura timeouts ajustados: DOWNLOAD_TIMEOUT = 30. Con IPs dedicadas y tráfico ilimitado, la latencia española es lo bastante estable para ser estricto aquí.
  5. Distribuye horizontalmente: scrapy-redis o Scrapyd para repartir la cola entre varios workers, todos consumiendo del mismo pool dedicado.
  6. Monitoriza tasas de bloqueo: registra los 403/429 por IP en tu middleware y pásalos a un dashboard simple. Si una IP dedicada supera el 5% de errores, toca avisar a soporte.

Un último detalle: antes de lanzar el pipeline completo, verifica la geolocalización de tus IPs con un spider de prueba contra un servicio tipo ip-api. Sobre todo si apuntas a SERPs locales españolas, donde una IP mal geolocalizada te destroza los resultados.

Conclusión: la receta definitiva para un scraping masivo estable

Al final, escalar un scraper Scrapy no va de hardware. Va de infraestructura de red bien pensada. La receta, dicha rápido: proxies dedicados con IPs españolas como base, un middleware de rotación con backoff por IP, sesiones sticky donde hagan falta, AUTO_THROTTLE afinado y distribución horizontal con scrapy-redis cuando un solo nodo ya no da más.

Los compartidos te ahorran dinero al principio. Después te lo cobran en bloqueos, CAPTCHAs y datos corruptos. Con los dedicados HTTP/s y SOCKSv5 de ProxySEO, tráfico ilimitado y soporte MCP para que tus agentes IA gestionen el pool sin intervención manual, el pipeline deja de ser frágil y pasa a ser predecible. Empieza conservador. Monitoriza. Y escala concurrencia e IPs en paralelo. Así se construye un scraping masivo que aguanta meses sin sustos.

Proxies profesionales con IP española

HTTP/s + SOCKSv5. Anónimos, dedicados y con tráfico ilimitado.

Ver Planes