Los tres hacen lo mismo: controlan un navegador de verdad mediante código. Para quien empieza, la elección parece indiferente, y lo es hasta la primera vez que el proyecto tiene que salir por un proxy con usuario y contraseña. Ahí la diferencia se vuelve grande.
Antes de nada, conviene hacerse la pregunta que más ahorra: ¿el contenido necesita de verdad un navegador? Si ya viene en el HTML, una petición simple lo resuelve en una fracción del tiempo y del tráfico. El camino sin navegador está en web scraping con Python.
La diferencia que decide
| Selenium | Puppeteer | Playwright | |
|---|---|---|---|
| Navegadores | Chrome, Firefox, Edge, Safari | Chrome y Firefox | Chromium, Firefox y WebKit |
| Lenguajes | Muchos | JavaScript | JavaScript, Python, Java, .NET |
| Proxy con usuario y contraseña | Indirecto | Mediante una llamada de autenticación | Nativo |
| Dirección distinta por contexto | No | No | Sí |
| Espera por elemento | Explícita, en tu código | Manual | Automática |
Las dos filas destacadas son las que importan cuando el proxy forma parte de la arquitectura.
Selenium: el trabajo extra de la credencial
Selenium es el más antiguo y el más universal: si ya hay una base construida con él, casi nunca merece la pena reescribirla. La fricción aparece en la autenticación: el argumento que define el proxy en Chrome acepta dirección y puerto, pero no transporta usuario y contraseña.
Quedan dos caminos. El más limpio es levantar un proxy local sin contraseña en la propia máquina, que recibe la conexión del navegador y la reenvía ya autenticada al proxy contratado. El otro es usar una biblioteca que lo envuelva. El paso a paso con código está en la guía de proxy en Selenium.
Puppeteer: directo, pero atado a Chrome
En Puppeteer la dirección va como argumento al lanzar el navegador y la credencial va mediante una llamada de autenticación en la página. Funciona bien, con una limitación: un navegador, una dirección. Si la operación exige diez cuentas con diez direcciones, son diez navegadores abiertos, con el coste de memoria que eso implica.
Es la opción natural para quien ya vive en JavaScript y maneja pocas identidades. La configuración está en la guía de Playwright, Puppeteer y Scrapy.
Playwright: proxy por contexto
Playwright resuelve los dos puntos anteriores. Acepta servidor, usuario y contraseña directamente y, lo que más cambia la arquitectura, lo acepta en cada contexto, no solo en el navegador.
En la práctica: un proceso, varios contextos, una dirección y una sesión por contexto. Diez cuentas funcionan aisladas dentro del mismo navegador, sin diez procesos. El patrón completo, con los errores que vuelven a juntar las cuentas, está en proxy por contexto en Playwright, y la configuración paso a paso, en proxy en Playwright.
Súmale la espera automática por elemento, que elimina buena parte de las pausas fijas que hacen lentos e inestables los scripts de Selenium, y se convierte en la opción más directa para un proyecto nuevo.
Cómo elegir, en tres preguntas
- ¿Ya hay una base construida? Si es Selenium y funciona, mantenla. Resuelve la credencial con el proxy local y sigue.
- ¿Cuántas identidades a la vez? Más de dos o tres, con direcciones distintas, favorece a Playwright por el ahorro de procesos.
- ¿Es recolección u operación de cuentas? Recolectar páginas públicas muchas veces ni siquiera necesita navegador. Operar cuentas necesita una sesión conservada y una dirección fija, tema de automatización con sesión e IP fija.
Lo que ninguna de las tres resuelve
La herramienta define cómo controlas el navegador. No define cómo te ve la plataforma del otro lado.
Ninguna crea historial de cuenta, corrige una huella digital incoherente ni compensa un ritmo de máquina donde se espera una persona. Y el error más común no es elegir la herramienta equivocada: es configurar el proxy en un sitio que la herramienta no lee, y que la automatización salga por la dirección del servidor sin que nadie se dé cuenta. Por eso, comprueba la salida antes de ponerla en producción, por ejemplo abriendo mi IP desde el propio script.
Cuántas direcciones necesita la operación, y de qué tipo, está en automatización con proxy: cuántas IP necesitas. Para contratar, proxy para automatización reúne los tipos por escenario.