---
title: "Undetected ChromeDriver para web scraping"
description: "Cómo trabaja esta versión parcheada de ChromeDriver, cómo añadirle un proxy, dónde se queda corta y qué prácticas ayudan de verdad."
url: https://proxynet.io/es/blog/how-to-use-undetected-chromedriver-for-web-scraping
date: 2025-02-13
author: "PXNET"
category: "Tutoriales, Proxy 101"
lang: es
---

# Undetected ChromeDriver para web scraping

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](https://github.com/ultrafunkamsterdam/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](/es/proxy) sirven para esto:

- [Proxies residenciales](https://proxynet.io/es/residential-proxy)
- [Proxies ISP](https://proxynet.io/es/static-isp-residential-proxy)
- [Proxies móviles](https://proxynet.io/es/mobile-proxy)
- [Proxies de centro de datos](https://proxynet.io/es/datacenter-proxy)

## Instalación

```bash
pip install undetected-chromedriver
```

Un primer script:

```python
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:

```python
import undetected_chromedriver as uc

options = uc.ChromeOptions()
options.add_argument("--headless=new")

driver = uc.Chrome(options=options)
```

## Añadir un proxy

```python
import undetected_chromedriver as uc

options = uc.ChromeOptions()
options.add_argument("--proxy-server=http://PROXY_HOST:PORT")

driver = uc.Chrome(options=options)
```

> **Aviso**
>
> El usuario y la contraseña no van en `--proxy-server`: Chrome los ignora y muestra en su lugar una ventana de acceso que el driver no puede rellenar. Registra tu propia IP en la lista de IP autorizadas del panel de Proxynet y el proxy dejará de pedir credenciales. La solución intermedia de antes, `selenium-wire`, lleva tiempo sin mantenimiento; si necesitas autenticación sí o sí, el camino practicable es [SeleniumBase](/es/blog/how-to-use-proxy-with-seleniumbase).

## 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](https://proxynet.io/es/residential-proxy) rotativo lo resuelve desde el servicio; con tu propia lista, monta la rotación siguiendo [Cómo rotar proxies en Python](/es/blog/how-to-rotate-proxies-in-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](https://playwright.dev/) o [Puppeteer](https://pptr.dev/), 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.
