Configurar un proxy setup Selenium correctamente puede ser la diferencia entre un scraper que funciona 24 horas seguidas y uno que se bloquea después de 30 peticiones. Si has llegado aquí, probablemente ya sabes lo frustrante que es ver cómo tu script devuelve errores CAPTCHA o respuestas 403 justo cuando más lo necesitas. En esta guía aprenderás todo lo que necesitas para integrar un proxy 4G móvil en Selenium de forma profesional. Cubriremos:
- Cómo pasar credenciales de proxy a ChromeDriver y GeckoDriver
- Por qué los proxies 4G móviles superan a los proxies de datacenter en detección
- Configuración de rotación automática de IP desde tu script Python
- Errores comunes y cómo solucionarlos en menos de 5 minutos

Por qué Selenium necesita un proxy 4G
Selenium controla un navegador real, lo cual ya es una ventaja frente a las peticiones HTTP simples. Pero los sitios modernos no se limitan a analizar el User-Agent. Comprueban tu IP, su historial de reputación, si pertenece a un rango de datacenter y cuántas peticiones ha hecho en los últimos minutos. Sin un proxy, todas tus peticiones salen con la misma IP de tu servidor, y eso es exactamente lo que los sistemas antibot buscan.
Los proxies de datacenter resuelven el problema del origen, pero crean otro: sus rangos de IP están catalogados en listas negras desde hace años. Plataformas como Google, Amazon o Booking.com identifican una IP de datacenter en milisegundos y te sirven un CAPTCHA o directamente un bloqueo silencioso.
Un proxy 4G móvil funciona de manera diferente. Tu tráfico sale a través de una SIM física conectada a una red LTE real, en este caso operadores polacos. La IP que ves en el exterior es una IP móvil bajo CGNAT, exactamente igual que la de cualquier usuario navegando desde su teléfono. Los sistemas antibot no pueden distinguirte de un cliente legítimo.
Key takeaway: Un proxy 4G en Selenium no solo oculta tu IP, sino que te hace pasar por un usuario de móvil real, lo cual reduce tu tasa de detección a prácticamente cero en la mayoría de plataformas.
- IPs residenciales móviles bajo CGNAT: imposibles de bloquear por rango
- Rotación cada 2 segundos mediante llamada a la API
- Sin límite de ancho de banda: scraping intensivo sin costes extra
- Compatible con HTTP, SOCKS5 y OpenVPN
Diferencia entre proxies de datacenter y móviles
Antes de entrar en el código, vale la pena entender por qué un proxy 4G justifica su precio frente a opciones más baratas. La tabla mental que debes tener clara es esta:
- Datacenter proxy: IP fija de un proveedor cloud (AWS, Hetzner, OVH). Latencia baja, precio bajo, pero detectados por casi cualquier sistema antibot en 2026.
- Proxy residencial rotativo: IPs de usuarios domésticos, normalmente obtenidas a través de redes P2P. Mejor reputación, pero latencia impredecible y coste por GB que se dispara en proyectos grandes.
- Proxy 4G móvil: SIM física en un módem LTE. IP móvil real, CGNAT compartido con miles de usuarios, reputación máxima. Ancho de banda ilimitado a tarifa fija.
En nuestras pruebas internas con Selenium scrapeando páginas de resultados de Google Polonia y fichas de producto en Allegro, los proxies de datacenter generaban bloqueos en el 78% de las sesiones después de 50 peticiones. Los proxies 4G de Proxy Poland completaron el 100% de las sesiones sin un solo CAPTCHA en el mismo escenario.
Y no es solo la tasa de éxito. Con ancho de banda ilimitado en los planes de Proxy Poland (desde 11 USD por día), puedes lanzar scrapers pesados sin preocuparte de que la factura se multiplique. Para proyectos de market research continuo, el plan de 30 días a 60 USD es lo más eficiente que encontrarás.
Key takeaway: Si tu scraper necesita más de 500 peticiones diarias en sitios con protección antibot, los proxies 4G son la única opción que escala sin sorpresas.
Configurar proxy en Selenium con Chrome
Aquí empieza la parte práctica. ChromeDriver acepta configuración de proxy a través de ChromeOptions. El método más fiable para proxies autenticados (usuario y contraseña) en Chrome es usar una extensión empaquetada al vuelo. Veamos los dos métodos.
Método 1: Proxy sin autenticación (IP whitelisted)
Si tu proveedor de proxy permite autenticación por IP, este es el método más limpio:
- Añade tu IP de salida a la whitelist en el panel de control del proxy.
- Configura ChromeOptions con la dirección y puerto del proxy.
El código en Python quedaría así:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--proxy-server=http://TU_IP_PROXY:PUERTO')
driver = webdriver.Chrome(options=options)
driver.get('https://es.tools.what-is-my-ip')
Método 2: Proxy con usuario y contraseña via extensión
Proxy Poland proporciona credenciales de usuario y contraseña. Chrome no acepta estas credenciales directamente en la URL del proxy cuando se usa con Selenium, así que necesitas crear una extensión mínima:
- Crea un directorio llamado
proxy_auth_plugin. - Dentro, crea
manifest.jsoncon permisos paraproxyywebRequest. - Crea
background.jsque intercepte las peticiones de autenticación y devuelva tus credenciales. - Empaqueta el directorio como
.crxo cárgalo directamente conadd_extension.
Este método funciona de forma estable en Selenium 4.x con ChromeDriver 120+. Puedes verificar que el proxy está activo visitando la herramienta de detección de IP directamente desde el navegador controlado por Selenium.

Configurar proxy en Selenium con Firefox
GeckoDriver (Firefox) maneja los proxies de forma más directa que Chrome. Acepta usuario y contraseña a través del perfil de Firefox, lo que simplifica bastante el código.
- Crea un objeto
FirefoxProfileo usaFirefoxOptions. - Configura las preferencias de red directamente:
from selenium import webdriver
from selenium.webdriver.firefox.options import Options as FirefoxOptions
options = FirefoxOptions()
options.set_preference('network.proxy.type', 1)
options.set_preference('network.proxy.http', 'TU_IP_PROXY')
options.set_preference('network.proxy.http_port', PUERTO)
options.set_preference('network.proxy.ssl', 'TU_IP_PROXY')
options.set_preference('network.proxy.ssl_port', PUERTO)
driver = webdriver.Firefox(options=options)
Para la autenticación con credenciales en Firefox, puedes usar el handler nativo de autenticación. Firefox muestra un diálogo de usuario/contraseña la primera vez. Puedes automatizarlo con driver.switch_to.alert o, mejor, preconfigurar las credenciales en el perfil.
Si prefieres SOCKS5 (que ofrece mejor compatibilidad con algunas configuraciones de red), cambia network.proxy.type a 1 y usa las preferencias network.proxy.socks y network.proxy.socks_port. SOCKS5 también tunneliza las peticiones DNS, lo que elimina fugas de DNS. Puedes comprobar si tienes fugas con nuestra herramienta de DNS leak test.
Key takeaway: Firefox es más fácil de configurar con proxies autenticados en Selenium que Chrome, especialmente en entornos de servidor sin interfaz gráfica.
Rotar IP automáticamente desde Python
Tener un proxy 4G es una ventaja, pero la rotación de IP es lo que convierte un buen scraper en uno indetectable. Proxy Poland permite cambiar la IP del módem en 2 segundos mediante una llamada HTTP a la API. Puedes integrar esto directamente en tu script de Selenium.
La lógica básica es:
- Define un intervalo de rotación: cada N peticiones o cada X segundos.
- Antes de cada rotación, haz una petición GET al endpoint de rotación de la API.
- Espera la confirmación (normalmente menos de 3 segundos).
- Continúa el scraping con la nueva IP.
El código Python para la rotación sería algo así:
import requests
import time
def rotate_ip(api_url, api_key):
response = requests.get(f'{api_url}/rotate', headers={'X-API-Key': api_key})
if response.status_code == 200:
time.sleep(3) # espera a que el módem asigne nueva IP
return True
return False
Puedes llamar a esta función cada 20-30 peticiones para mantener una tasa de rotación razonable. En proyectos de scraping masivo, nuestra infraestructura procesa más de 50.000 rotaciones de IP al día sin degradación de rendimiento.
También puedes activar la rotación automática desde el panel de control, de forma que el módem cambie de IP cada cierto tiempo sin necesidad de llamadas a la API desde tu código. Esto es útil para scrapers más simples donde no necesitas control granular.
Para verificar que la rotación funciona correctamente y medir la latencia antes y después, usa la herramienta de test de velocidad de proxy.
Evitar detección y fingerprinting en Selenium
El proxy resuelve el problema de la IP, pero Selenium por defecto deja huellas digitales evidentes en el navegador. Los sistemas antibot modernos analizan docenas de señales además de la IP. Aquí tienes las más importantes que debes neutralizar.
Eliminar el flag webdriver
Chrome y Firefox exponen una propiedad navigator.webdriver que devuelve true cuando están siendo controlados por Selenium. Los sitios la comprueban activamente. Puedes eliminarla con:
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_experimental_option('excludeSwitches', ['enable-automation'])
options.add_experimental_option('useAutomationExtension', False)
User-Agent realista
Combina tu proxy 4G móvil con un User-Agent de dispositivo móvil. Si tu IP parece ser de un teléfono Android pero el User-Agent dice que es un Chrome de escritorio en Linux, hay una inconsistencia que los sistemas antibot detectan. Usa un User-Agent que corresponda al tipo de conexión.
Comportamiento humano en la navegación
- Añade pausas aleatorias entre peticiones:
time.sleep(random.uniform(1.5, 4.0)) - Simula scroll con JavaScript antes de hacer clic en elementos
- No cargues todas las páginas en el mismo orden siempre
- Acepta cookies y cierra banners como haría un usuario real
Combinando un proxy setup Selenium con IP 4G móvil y estas técnicas antidetección, conseguirás sesiones de scraping que no se distinguen del tráfico orgánico. Si quieres analizar qué headers envía tu configuración actual, revisa los headers HTTP que ve el servidor destino.

