Undetected ChromeDriver es una versión modificada del ChromeDriver de Selenium, pensada para que los servicios habituales de detección de bots no la clasifiquen como automatización.
Qué es
Undetected ChromeDriver es una biblioteca de Python que proporciona un ChromeDriver parcheado. Los cambios apuntan a los rasgos por los que servicios como Imperva, DataDome, Distil Networks y, en parte, Cloudflare reconocen una sesión de Selenium.
Cómo funciona
- Variables de Selenium renombradas: los identificadores que Selenium deja en el navegador reciben nombres propios de un navegador corriente.
- User-Agent realista: en lugar del identificador que delata de inmediato una automatización.
- Comportamiento más natural: patrones de movimiento y de tiempo que resultan menos mecánicos.
- Cookies y sesiones: se gestionan correctamente a lo largo de la visita.
- Compatibilidad con proxy: para que las peticiones no salgan todas de una misma dirección.
Cuáles de nuestros productos de proxy sirven para esto:
Instalación
pip install undetected-chromedriverUn primer script:
import undetected_chromedriver as uc
# start the browser
driver = uc.Chrome()
# open the target page
driver.get("https://example.com")
# ... read the data you need ...
driver.quit()Con uc.ChromeOptions() configuras el navegador, por ejemplo para funcionar sin ventana:
import undetected_chromedriver as uc
options = uc.ChromeOptions()
options.add_argument("--headless=new")
driver = uc.Chrome(options=options)Añadir un proxy
import undetected_chromedriver as uc
options = uc.ChromeOptions()
options.add_argument("--proxy-server=http://PROXY_HOST:PORT")
driver = uc.Chrome(options=options)Dónde se queda corta
La biblioteca esquiva muchos métodos de detección, pero no todos, y ella sola no rota proxies.
- Comprobaciones simples: tasa de éxito alta; la sesión se comporta casi como una visita manual.
- Comprobaciones intermedias: servicios como Cloudflare entran en juego y hacen falta además ajuste de huella y cookies bien mantenidas.
- Comprobaciones estrictas: el análisis de comportamiento en el navegador suele detectar la automatización igualmente. Ahí conviene mirar otras herramientas o una interfaz oficial.
El arranque tarda algo más que con el ChromeDriver normal: es el precio de los parches y apenas cuenta en ejecuciones largas.
Buenas prácticas
Cambia de dirección. Muchas peticiones desde una sola IP son la señal más evidente de todas. Un Proxies residenciales rotativo lo resuelve desde el servicio; con tu propia lista, monta la rotación siguiendo Cómo rotar proxies en Python.
Ajusta la huella. Lo que el navegador revela sobre fuentes, resolución y gráficos ya es en sí un rasgo identificativo. Bibliotecas como selenium-stealth lo suavizan.
Conserva las cookies. Una sesión que empieza de cero en cada visita parece una máquina. Guarda las cookies y cárgalas en la siguiente ejecución.
Usa headless con cabeza. El modo sin ventana es cómodo, pero algunos sitios lo toman como señal por sí mismo. Si tienes problemas, prueba a desactivarlo.
No trabajes con demasiada regularidad. Pausas aleatorias entre peticiones y un recorrido que no sea idéntico cada vez llaman menos la atención que una ejecución perfectamente cronometrada.
Conclusión
Undetected ChromeDriver es una herramienta eficaz, pero no resuelve todos los casos. La tasa de detección baja de verdad cuando se combina con direcciones cambiantes, huella ajustada y un ritmo tranquilo.
Para objetivos más exigentes vale la pena mirar Playwright o Puppeteer, o una API oficial si existe. Y sea cual sea la herramienta: respeta las condiciones de uso del sitio de destino y la legislación aplicable.




