Volver al blog

¿Qué es el Protocolo de Chrome DevTools (CDP)?

Alex Johnson
Alex Johnson

Senior Web Scraping Engineer

14-Jul-2026

Resumen:

  • El Protocolo de DevTools de Chrome (CDP) es el protocolo de conexión que permite a herramientas externas instrumentar, inspeccionar, depurar y perfilar navegadores basados en Chromium. DevTools de Chrome se comunica con el navegador a través de CDP, y lo mismo hacen Puppeteer, Playwright y chromedp.
  • CDP está organizado en dominios. Cada dominio — Page, Network, DOM, Runtime, Target, Browser, Input y más de 60 otros — define los comandos que acepta y los eventos que emite.
  • El transporte son mensajes JSON a través de un WebSocket. Un cliente envía un comando como un objeto JSON con un id, un method, y params; el navegador responde con un resultado coincidente y transmite eventos a medida que ocurren.
  • Viene en dos versiones. La versión de tip-of-tree (tot) cambia con frecuencia sin garantía de compatibilidad; la versión estable 1.3 (de Chrome 64) es un subconjunto soportado.
  • CDP es cómo la automatización moderna se conecta a un navegador — incluidos los remotos. Apunta un cliente CDP a un punto final de WebSocket y controla ese navegador, donde sea que se ejecute.
  • El Navegador de Scraping Sin Desperdicio es un punto final de CDP. Puppeteer, Playwright o chromedp se conectan a una URL de WebSocket y operan sobre Chromium en la nube real, sin cambios.
  • Gratis para empezar. Nuevas cuentas de Scraping Sin Desperdicio incluyen tiempo de ejecución gratuito del Navegador de Scraping — regístrate en app.scrapeless.com.

Introducción: el lenguaje con el que la automatización se comunica con Chrome

El Protocolo de DevTools de Chrome es la interfaz que un navegador expone para que herramientas externas puedan controlarlo y observarlo. Cuando abres el panel de DevTools de Chrome y observas solicitudes de red o recorres JavaScript, el panel no se está comunicando directamente con el navegador; está enviando comandos CDP y recibiendo eventos CDP a través de una conexión. Cada biblioteca de automatización de navegadores construida sobre Chromium utiliza el mismo protocolo subyacente.

Esto es importante para el scraping y las pruebas porque CDP es lo que permite que un script haga lo que un humano con DevTools puede hacer: navegar, leer el DOM después de que se renderiza, interceptar solicitudes, capturar capturas de pantalla y evaluar JavaScript en la página. Esta guía explica qué es CDP, cómo funcionan sus dominios y mensajes, y por qué un punto final de CDP es exactamente a lo que te conectas cuando controlas un navegador en la nube.


Qué es CDP, precisamente

El Protocolo de DevTools de Chrome permite a las herramientas instrumentar, inspeccionar, depurar y perfilar Chromium, Chrome y otros navegadores basados en Blink. Es una interfaz de control remoto para los internos del navegador, mantenida por el equipo de DevTools de Chrome. La definición oficial del protocolo enumera todos los dominios, comandos y eventos, y el navegador expone la misma definición en su punto final /json/protocol/.

CDP no es una herramienta de scraping por sí misma — es la capa debajo de las herramientas. Puppeteer, Playwright, chromedp y Lighthouse traducen todas sus llamadas de alto nivel en comandos CDP, razón por la cual pueden controlar cualquier navegador que lo hable.

Cómo está organizado CDP: dominios, comandos y eventos

CDP divide la superficie del navegador en dominios, y cada dominio posee un conjunto de comandos y eventos. Hay más de 60 dominios; los que un scraper toca más son un pequeño subconjunto:

Dominio Lo que controla
Page navegación, ciclo de vida, capturas de pantalla, imprimir-a-PDF
Network solicitudes, respuestas, encabezados, interceptación
DOM el árbol del documento, nodos, atributos
Runtime evaluación de JavaScript en el contexto de la página
Target pestañas, marcos y creación de nuevos contextos de navegador
Input eventos sintéticos de mouse, teclado y toque
Browser acciones a nivel de navegador y gestión de ventanas

Un comando es una solicitud que envías a un dominio (por ejemplo, Page.navigate). Un evento es un mensaje que el navegador te envía cuando ocurre algo (por ejemplo, Network.responseReceived). Una llamada de alto nivel como page.goto() de Puppeteer es un comando Page.navigate más una espera en debajo de eventos de ciclo de vida.

El transporte: mensajes JSON a través de un WebSocket

La comunicación CDP son objetos JSON serializados de una estructura fija, transportados a través de una conexión WebSocket. Un cliente se conecta al WebSocket de depuración del navegador, y luego intercambia mensajes definidos por el formato de datos JSON.

Un comando lleva un id, un method que nombra el dominio y el comando, y un objeto params:

json Copy
// Comando enviado al navegador
{ "id": 1, "method": "Page.navigate", "params": { "url": "https://example.com" } }

// Resultado devuelto con el id correspondiente
{ "id": 1, "result": { "frameId": "…", "loaderId": "…" } }

// Un evento enviado por el navegador (sin id)
{ "method": "Page.loadEventFired", "params": { "timestamp": 12345.6 } }

El id correlaciona un resultado con el comando que lo produjo; los eventos llegan sin un id porque el navegador los emite según su propio horario. Un cliente típicamente abre el WebSocket, habilita los dominios que le interesan (Network.enable, Page.enable), y luego entremezcla comandos y eventos durante el resto de la sesión.

Versiones del protocolo: en desarrollo y estable

CDP se distribuye en dos ramas. La versión en desarrollo (tot) sigue el último Chromium y cambia con frecuencia, sin garantía de compatibilidad hacia atrás. La versión estable 1.3, introducida en Chrome 64, es un subconjunto soportado al que las herramientas pueden dirigirse para mayor estabilidad. Una superficie v8-inspector separada expone el mismo estilo de protocolo para la depuración y el perfilado de Node.js. La mayoría de las bibliotecas de automatización se fijan a una compilación de Chromium y utilizan el protocolo correspondiente, que es la razón por la que se espera que una biblioteca y una versión de navegador se desplacen juntas.

Qué utiliza CDP

CDP es la base compartida bajo un amplio conjunto de herramientas:

  • Chrome DevTools — el panel en el navegador es un cliente de CDP.
  • Puppeteer — se conecta a través de CDP por defecto.
  • Playwright — controla Chromium a través de CDP (e implementa sus propios protocolos para Firefox y WebKit).
  • chromedp — una biblioteca de Go que habla CDP directamente.
  • Lighthouse — recopila datos de rendimiento y auditoría a través de CDP.

Debido a que todas ellas hablan el mismo protocolo, cualquiera de ellas puede conectarse a un navegador que no lanzaron, siempre que ese navegador exponga un endpoint de CDP. El estándar emergente de navegador cruzado, WebDriver BiDi, se basa en el mismo modelo bidireccional de comando y evento que CDP pionero.

Un endpoint de CDP no tiene que estar en tu máquina. Debido a que el protocolo funciona a través de un WebSocket, un cliente puede conectarse a un navegador que se ejecute en cualquier lugar, que es exactamente cómo funciona un navegador en la nube. El Navegador de Scraping sin Suciedad expone un endpoint de CDP en una sola URL de WebSocket, por lo que un cliente de CDP se conecta a un verdadero Chromium en la nube en lugar de uno local:

  • Puppeteer se conecta con puppeteer.connect({ browserWSEndpoint }).
  • Playwright se conecta con chromium.connectOverCDP().
  • chromedp se conecta con NewRemoteAllocator.

El código no cambia; solo se mueve el endpoint. El navegador se ejecuta en la nube con una huella digital de Chromium real y salida residencial, y tu biblioteca que habla CDP lo controla exactamente como lo haría con un navegador local.

El mismo endpoint también responde a algunos dominios más allá del protocolo estándar — Captcha.* para detección y solución de CAPTCHA, Agent.* para clics y escritura simulados — documentados en la Referencia de la API de CDP de Scrapeless. Un cliente que ya habla CDP puede llamarlos de la misma manera que llama a Page.navigate.

Obtén tu clave API en el plan gratuito en app.scrapeless.com.

Obtén tu clave API en el plan gratuito: app.scrapeless.com

Conclusión: un protocolo bajo cada herramienta de Chromium

CDP es la capa común debajo de la automatización del navegador: un conjunto de dominios, intercambiados como comandos y eventos JSON a través de un WebSocket, que permite a una herramienta controlar y observar un navegador Chromium. Entenderlo explica por qué Puppeteer, Playwright y chromedp se sienten similares por debajo, por qué una biblioteca y una versión de navegador viajan juntas, y por qué conectarse a un navegador remoto es tan simple como apuntar a una URL de WebSocket diferente. Para un ejemplo detallado de control de un navegador en la nube a través de CDP desde Python, consulta la guía de scraper de producción de Scrapling, y compara planes en la página de precios de Scrapeless.


Únete a nuestra comunidad para reclamar un plan gratuito y conectarte con desarrolladores que construyen automatización basada en CDP: Discord · Telegram.
Regístrese en app.scrapeless.com para obtener de forma gratuita el tiempo de ejecución del Navegador de Scraping y dirija su cliente CDP a un navegador en la nube a través de una URL WebSocket.


Preguntas Frecuentes

P: ¿Es CDP lo mismo que WebDriver?
No. CDP es el protocolo propio de bajo nivel y bidireccional de Chromium (comandos y eventos a través de un WebSocket); el clásico WebDriver es un protocolo de solicitud-respuesta HTTP estandarizado por el W3C. El nuevo estándar WebDriver BiDi ofrece un modelo bidireccional al estilo de CDP a través de los navegadores.

P: ¿Uso CDP directamente cuando escribo un scraper?
Generalmente no. Utiliza una biblioteca — Puppeteer, Playwright o chromedp — que traduce sus llamadas en comandos CDP. Solo recurres a CDP puro para capacidades que una biblioteca no expone.

P: ¿Playwright utiliza CDP?
Para Chromium, sí. Playwright controla Chromium a través de CDP; para Firefox y WebKit utiliza sus propios protocolos, por lo que algunas características específicas de CDP son exclusivas de Chromium.

P: ¿Cómo se conecta una herramienta a un navegador a través de CDP?
El navegador expone una URL de WebSocket de depuración. El cliente abre ese WebSocket e intercambia comandos y eventos en JSON. Un navegador en la nube como Scrapeless te proporciona esa URL de WebSocket directamente, por lo que el mismo cliente se conecta a un navegador remoto.

P: ¿Cuál es la diferencia entre CDP en la punta del árbol y CDP estable?
La punta del árbol rastrea el último Chromium y puede cambiar sin previo aviso; estable 1.3 (de Chrome 64) es un subconjunto fijo en el que las herramientas pueden confiar. Las bibliotecas generalmente se fijan en una versión de compilación de Chromium y la versión del protocolo que se envía con ella.

En Scrapeless, solo accedemos a datos disponibles públicamente y cumplimos estrictamente con las leyes, regulaciones y políticas de privacidad del sitio web aplicables. El contenido de este blog es sólo para fines de demostración y no implica ninguna actividad ilegal o infractora. No ofrecemos garantías y renunciamos a toda responsabilidad por el uso de la información de este blog o enlaces de terceros. Antes de realizar cualquier actividad de scraping, consulte a su asesor legal y revise los términos de servicio del sitio web de destino u obtenga los permisos necesarios.

Artículos más populares

Catalogar