Rotar IPs en Python es de esas habilidades que separan a quien hace scraping de fin de semana de quien lo hace en serio. Si te dedicas al SEO técnico, a extraer datos a escala o a montar automatizaciones con agentes de IA, tarde o temprano te vas a topar con bloqueos. En este artículo explico, paso a paso, cómo montar un sistema de rotación automática de direcciones IP con la API de ProxySEO, usando proxies dedicados HTTP/s y SOCKSv5 con IPs españolas y tráfico ilimitado.
¿Por qué rotar IPs en Python es imprescindible?
Porque los sitios web ya no se dejan raspar tan fácilmente. Los sistemas anti-bot detectan patrones: demasiadas peticiones desde una misma dirección en poco tiempo y ya tienes un CAPTCHA, un bloqueo o, peor, un baneo permanente. La rotación de IPs reparte las peticiones entre varias direcciones y, con ello, imita el tráfico de usuarios reales.
¿Dónde se usa esto en la práctica? Algunos casos habituales:
- Scraping web a escala: extraer datos de comparadores, marketplaces o buscadores sin acabar bloqueado.
- Auditorías SEO: verificar posiciones en Google desde distintas ubicaciones de España.
- Testing de geolocalización: comprobar cómo se ve tu web desde Madrid, Barcelona o Valencia.
- Agentes de IA: los agentes que consultan fuentes externas necesitan IPs limpias y variadas para no tropezarse con restricciones.
Requisitos previos para empezar
Antes de escribir una sola línea de código necesitas cuatro cosas:
- Una cuenta activa en ProxySEO con acceso a la API de gestión de proxies.
- Tus credenciales de API (API key y endpoint), que encontrarás en el panel de cliente.
- Python 3.9 o superior instalado.
- Las librerías requests y python-dotenv: pip install requests python-dotenv
Seguridad de credenciales
Un aviso que nunca está de más: no metas la API key dentro del código. Nunca. Acaba en un repositorio público más de lo que uno querría admitir. Guárdala en un archivo .env:
PROXYSEO_ENDPOINT=https://api.proxyseo.es/v1
Y cárgala así:
import os
from dotenv import load_dotenv
load_dotenv()
API_KEY = os.getenv(«PROXYSEO_API_KEY»)
Obtener la lista de proxies desde la API de ProxySEO
Primer paso: consultar la API para recuperar tus proxies dedicados asignados. ProxySEO devuelve un JSON con IP, puerto, protocolo y credenciales:
import requests
def obtener_proxies():
resp = requests.get(
f»{API_ENDPOINT}/proxies»,
headers={«Authorization»: f»Bearer {API_KEY}»}
)
resp.raise_for_status()
return resp.json()[«proxies»]
Cada proxy llega en un formato parecido a este: {«ip»: «185.23.44.12», «puerto»: 8080, «protocolo»: «socks5», «usuario»: «user1», «password»: «pass1»}. Como son proxies dedicados, nadie más está usando esas IPs. Eso se nota: reputación limpia y rendimiento estable.
Implementar el rotador de IPs en Python
Con la lista en la mano, toca construir la clase rotadora. La estrategia que recomiendo: round-robin con reintento. O sea, ir ciclando entre proxies y saltar al siguiente cuando uno falla. Simple y funciona.
Código del rotador
import itertools
import random
import time
class RotadorProxies:
def __init__(self, proxies):
self.proxies = itertools.cycle(proxies)
self.actuales = list(proxies)
def siguiente(self):
p = next(self.proxies)
url = f»{p[‘protocolo’]}://{p[‘usuario’]}:{p[‘password’]}@{p[‘ip’]}:{p[‘puerto’]}»
return {«http»: url, «https»: url}
def get(self, url, intentos=3):
for _ in range(intentos):
try:
return requests.get(url, proxies=self.siguiente(), timeout=10)
except requests.RequestException:
time.sleep(1)
raise RuntimeError(«Todos los intentos fallaron»)
Si vas a usar SOCKSv5, instala también pip install requests[socks]. Los proxies SOCKS de ProxySEO operan a nivel de transporte, lo que los hace idóneos para tráfico no HTTP y para cuando necesitas el máximo anonimato posible.
Rotación basada en peticiones vs. basada en tiempo
No hay una única forma correcta de rotar. Depende del objetivo:
- Rotación por petición: cada request sale con una IP distinta. Máxima evasión, pensada para scraping agresivo de buscadores.
- Rotación por sesión: mantener la misma IP durante N peticiones o X segundos. Útil cuando el sitio exige cookies o un login persistente.
- Rotación adaptativa: cambiar de IP solo al detectar un 403, un 429 o un CAPTCHA. La más eficiente en consumo de IPs, si me preguntas.
Integración con agentes de IA vía MCP
¿Trabajas con agentes de IA (Claude, GPT u otros LLMs que ejecutan herramientas)? ProxySEO ofrece soporte MCP (Model Context Protocol). En la práctica, esto significa que tu agente puede solicitar una IP nueva o consultar el estado de los proxies como si fuera una herramienta más, sin lógica extra en tu código:
herramienta: proxyseo_rotar_ip() → devuelve nueva IP española dedicada
Imagina el caso: el agente detecta que una fuente web le está bloqueando. Rota la IP automáticamente, reintenta y sigue. Sin intervención humana en ningún momento del flujo.
Buenas prácticas y errores comunes
- Valida las IPs antes de usarlas: comprueba latencia y códigos de respuesta contra https://httpbin.org/ip.
- Respeta robots.txt y los términos de uso: rotar IPs es una herramienta legítima, no una licencia para abusar.
- Registra cada petición: un log con IP usada, timestamp y código HTTP te ahorrará horas de diagnóstico.
- Usa proxies dedicados, nunca compartidos: las IPs compartidas arrastran los baneos de otros usuarios. Y no te enteras hasta que es tarde.
- Renueva el pool periódicamente: con la API puedes solicitar refresco de IPs en segundos.
Conclusión
Con poco más de 40 líneas de código tienes un rotador robusto, con reintentos, listo para producción. A partir de ahí, el camino se abre: scraping a escala, monitorización SEO, automatización con agentes de IA. Y si quieres dar un paso más, el soporte MCP te permite integrar la rotación directamente en tus flujos de trabajo con IA, sin tocar apenas código. ProxySEO pone a tu disposición proxies HTTP/s y SOCKSv5 dedicados, anónimos, con IPs españolas reales y tráfico ilimitado, además de un soporte técnico que acompaña durante toda la integración. Mi consejo: pruébalo en tu próximo proyecto y compara. La diferencia entre una infraestructura proxy seria y un proxy gratuito cualquiera se nota desde la primera hora.