Configuración de proxy de Selenium en Python y Java
Selenium puede enrutar un navegador a través de un proxy en un par de líneas — pero los proxies autenticados necesitan una extensión o un asistente de salida, porque Chrome no aceptará USER:PASS en la línea de comandos. Aquí está el patrón confiable.
El problema de autenticación en Selenium
Setting an unauthenticated proxy in Selenium is trivial: add --proxy-server=http://host:3128 to Chrome options, or fill Selenium's Proxy object, and you are done. The moment the proxy needs a username and password, that simple path breaks — Chrome refuses credentials inline, and unlike Puppeteer or Playwright, Selenium has no built-in authenticate() hook to answer the 407 challenge.
La solución robusta y multilenguaje es una pequeña extensión de Chrome generada en tiempo de ejecución que lleva tus credenciales y responde a la solicitud de autenticación del proxy a través de la API webRequest. Funciona sin cabeza, no necesita servicios adicionales y se comporta igual en Python y Java. Con s4m apuntas la extensión a proxy.s4m.online:3128 (HTTP) y tu USER:PASS. Consulta la página del proxy y la guía de autenticación para más información; para una opción sin autenticación durante las pruebas, la lista gratuita tiene proxies abiertos que puedes introducir directamente en la bandera de la línea de comandos.
Proxy autenticado a través de una extensión generada
Este asistente de Python escribe una extensión de Chrome desechable que lleva tus credenciales, y luego la carga. Reemplaza USER:PASS antes de ejecutar.
import os, zipfile, tempfile
from selenium import webdriver
HOST, PORT, USER, PASS = "proxy.s4m.online", 3128, "USER", "PASS"
manifest = '{"version":"1.0.0","manifest_version":2,"name":"s4m-proxy",'\
'"permissions":["proxy","webRequest","webRequestBlocking","<all_urls>"],'\
'"background":{"scripts":["bg.js"]}}'
bg = ('var c={mode:"fixed_servers",rules:{singleProxy:'
'{scheme:"http",host:"%s",port:%d}}};'
'chrome.proxy.settings.set({value:c,scope:"regular"},function(){});'
'chrome.webRequest.onAuthRequired.addListener('
'function(d){return {authCredentials:{username:"%s",password:"%s"}};},'
'{urls:["<all_urls>"]},["blocking"]);') % (HOST, PORT, USER, PASS)
path = os.path.join(tempfile.mkdtemp(), "s4m_proxy.zip")
with zipfile.ZipFile(path, "w") as z:
z.writestr("manifest.json", manifest)
z.writestr("bg.js", bg)
opts = webdriver.ChromeOptions()
opts.add_extension(path)
driver = webdriver.Chrome(options=opts)
driver.get("https://api.ipify.org")
print("Exit IP:", driver.find_element("tag name", "body").text)
driver.quit()
# ----- Java (unauthenticated proxy) -----
// Proxy p = new Proxy();
// p.setHttpProxy("proxy.s4m.online:3128");
// ChromeOptions o = new ChromeOptions();
// o.setProxy(p);
// WebDriver driver = new ChromeDriver(o);Eligiendo tu enfoque
Elige según si el proxy necesita credenciales.
¿Sin autenticación? Usa la bandera
Para un proxy no autenticado, solo agrega --proxy-server=http://host:3128 a ChromeOptions, o establece el objeto Proxy de Selenium. No se necesita nada más.
¿Autenticación? Genera una extensión
Para proxies USER:PASS, envía una pequeña extensión de tiempo de ejecución que responde en onAuthRequired. Funciona sin cabeza y se comporta igual en todos los lenguajes.
Punto final HTTP para navegadores
Usa proxy.s4m.online:3128 (HTTP). SOCKS5 autenticado dentro de un navegador es poco fiable, así que mantén SOCKS5 para CLI y clientes de biblioteca.
Mantén la extensión privada
La extensión generada incrusta tus credenciales en un archivo temporal. Escríbelo en un directorio temporal privado y límpialo después de la ejecución.
Confiabilidad y expectativas honestas
Selenium controla un navegador real, que es tanto su fortaleza como su costo: es más pesado que un cliente HTTP puro, así que mantén las sesiones con un propósito y cierra los controladores rápidamente. Si solo necesitas HTML, un cliente HTTP detrás de un proxy es mucho más barato — consulta raspado con requests. Usa Selenium cuando se requiera renderizado de JavaScript o interacción genuina del usuario.
Como siempre, un proxy cambia tu IP, no tu huella digital. Los proxies s4m son de centro de datos — ideales para pruebas funcionales, monitoreo y raspado moderado, pero detectables como centro de datos en sitios hostiles. Cuando un inicio de sesión o lista de permitidos espera una dirección estable, añade una IP personal dedicada. Para proyectos más nuevos, considera Playwright, cuya autenticación de proxy nativa evita completamente el baile de extensiones. Verifica las salidas con las herramientas y lee la documentación de la API para automatizar la rotación de credenciales.
Preguntas, respondidas
¿Por qué no puedo poner USER:PASS en la bandera de proxy de Selenium?
Chrome ignora las credenciales en la bandera --proxy-server y en su lugar muestra un aviso de autenticación nativo que un navegador sin cabeza no puede responder. La solución confiable es una pequeña extensión de Chrome en tiempo de ejecución que responde a onAuthRequired con tu nombre de usuario y contraseña.
¿Hay una forma más sencilla para proxies no autenticados?
Sí. Sin credenciales, solo puedes agregar --proxy-server=http://host:3128 a ChromeOptions, o llenar el objeto Proxy de Selenium en Java. La extensión solo es necesaria cuando el proxy requiere USER:PASS.
¿Debería usar SOCKS5 o HTTP con Selenium?
Utiliza el punto de acceso HTTP en el puerto 3128 para navegadores. SOCKS5 autenticado en un navegador es poco fiable; mantén SOCKS5 para clientes de línea de comandos y bibliotecas.
¿Sería más fácil Playwright?
A menudo, sí. Playwright toma credenciales de proxy de forma nativa en su objeto de proxy, por lo que te saltas la extensión por completo. Selenium sigue siendo la opción correcta cuando tu proyecto ya depende de él.
Dirige navegadores a través de un proxy
Proxies de centro de datos autenticados en proxy.s4m.online, listos para Selenium a través de una extensión generada. Pago medido por uso, con una opción de IP dedicada para inicios de sesión estables.
Las personas encontraron esta página buscando
- configuración de proxy de Selenium en Python y java
- ¿qué es proxy para scraping?
- cómo evitar prohibiciones de IP al hacer scraping
- proxy para scraping
- proxychains: cómo encadenar proxies SOCKS5
- lista de proxies gratuitos comparación
- mejores protocolos de VPN en 2026
- dirección IP para scraping
- autenticación de proxy
- descargar autenticación de proxy
- fresco configuración de proxy
- cómo verificar si un proxy es válido (con un script listo)
- configuración de proxy
- trabajando lista de proxies gratuitos
- openvpn para windows
- dirección IP para android
- dirección IP
Frases de búsqueda reales que esta página responde — los enlaces abren la página que las cubre en profundidad.