Latenode

Browserless Chrome: una potente herramienta para la automatización de navegadores

Optimice la automatización de navegadores con un servicio Chrome headless basado en la nube que simplifica el web scraping, la generación de PDF y las pruebas.

10 min de lectura
Automatización de Chrome headless en la nube para scraping, PDF y pruebas

Browserless Chrome es un servicio en la nube que simplifica la automatización de navegadores al ejecutar Chrome en modo headless para tareas como web scraping, generación de PDF y pruebas. Elimina la necesidad de configuraciones locales del navegador y gestiona automáticamente los bloqueos del navegador, el aislamiento de sesiones y la optimización de recursos. Entre sus principales ventajas se incluyen:

  • Sin configuración local: Use Docker o una implementación en la nube para empezar rápidamente.
  • Alto rendimiento: Capturas de pantalla en ~1 segundo y PDF en ~2 segundos.
  • Evasión de detección de bots: Supera bloqueos como Cloudflare para una automatización fiable.
  • Eficiencia de recursos: Reduce el uso de proxies y máquinas virtuales hasta en un 90%.

Configuración rápida: Intégrelo con bibliotecas populares como Puppeteer, Playwright o Selenium mediante métodos de conexión sencillos. Browserless también ofrece API para web scraping, renderizado de JavaScript y flujos de automatización personalizados.

Comparación rápida de funciones

FunciónVentajaEjemplo
Limpieza de sesionesElimina automáticamente las sesiones inactivasMantiene los recursos optimizados
Prevención de detección de botsEvita bloqueos como CloudflareFiable para tareas de scraping
Procesamiento multitareaGestiona eficazmente solicitudes simultáneasMás de 2 millones de sesiones procesadas por semana
API listas para usarSimplifica las tareas de automatizaciónExtracción de datos JSON, PDF

Browserless Chrome es ideal para desarrolladores y empresas que buscan optimizar la automatización sin gestionar una infraestructura compleja.

Guía de configuración

Cómo instalarlo

Para empezar con Browserless Chrome, puede elegir entre dos opciones de instalación: una configuración local con Docker o una implementación en la nube. Para una configuración local con Docker, use el siguiente comando:

docker run -p 3000:3000 ghcr.io/browserless/chromium

Este comando descarga la imagen más reciente y la deja accesible en el puerto 3000 [3]. Funciona sin problemas en Windows, macOS y Linux.

Configuración inicial

Browserless Chrome incluye varias funciones integradas para simplificar el proceso de configuración:

FunciónConfiguración predeterminadaPropósito
Limpieza de sesiones30 segundosElimina automáticamente las sesiones inactivas
Comprobaciones de estadoActivadasGarantiza la estabilidad del sistema
Cola de solicitudesConfigurableGestiona múltiples conexiones simultáneas
Límites de recursosAjustablesControla el uso de memoria y CPU

Puede personalizar el entorno configurando estas variables:

MAX_CONCURRENT_SESSIONS=10
CONNECTION_TIMEOUT=30000
MAX_QUEUE_LENGTH=100

Una vez configurado, puede conectarse a Browserless mediante su método de integración preferido.

Realice su primera conexión

Según la biblioteca que utilice, así puede establecer su primera conexión:

  • Conexión con Puppeteer
const browser = await puppeteer.connect({
  browserWSEndpoint: 'wss://chrome.browserless.io?token=YOUR-API-TOKEN'
});
  • Integración con Playwright
const browser = await playwright.firefox.connect(
  `wss://production-sfo.browserless.io/firefox/playwright?token=${TOKEN}&proxy=residential`
);
  • Acceso a la API REST
curl -X POST https://chrome.browserless.io/content
  -H 'Content-Type: application/json'
  -H 'Authorization: Basic YOUR-BASE64-TOKEN'
  -d '{ "url": "https://example.com/"}'

Browserless V2 mejora la fiabilidad con dos endpoints regionales: la costa oeste de EE. UU. (production-sfo.browserless.io) y Europa (production-lon.browserless.io). Estos endpoints gestionan el aislamiento de sesiones, administran solicitudes simultáneas y se recuperan automáticamente de bloqueos. También eliminan las sesiones inactivas después de 30 segundos al iniciar una nueva instancia del navegador para cada sesión nueva [4].

Funciones principales

Conceptos básicos del navegador headless

Browserless Chrome funciona sin interfaz gráfica, en modo headless. Inicia automáticamente nuevas instancias del navegador para las solicitudes entrantes, lo que garantiza un uso eficiente de los recursos.

A continuación, verá un resumen rápido de sus funciones principales:

FunciónDescripciónVentaja
Aislamiento de sesionesSesiones de navegador independientesReduce los costes de infraestructura
Recuperación automáticaSe reinicia tras bloqueosMantiene las operaciones en marcha
Optimización de recursosUso eficiente de memoria y CPUMejora el rendimiento general

Además de estas funciones esenciales, Browserless está diseñado para gestionar múltiples tareas simultáneamente con facilidad.

Procesamiento multitarea

Con más de 2 millones de sesiones gestionadas, Browserless Chrome ha generado millones de capturas de pantalla, PDF y resultados de pruebas [5]. Su sistema inteligente de gestión de colas garantiza que las solicitudes se procesen sin sobrecargar los recursos y mantiene un rendimiento constante. Esto ha resultado especialmente útil para empresas como Samsara, que cambió de un servicio interno de pruebas a Browserless para obtener una mayor escalabilidad.

"Browserless cuenta con una gama de funciones diseñadas para simplificar y acelerar las tareas de automatización de navegadores web. Con su sólida API y su capacidad para gestionar operaciones paralelas, Browserless destaca como líder en el ámbito de la automatización." – Elest.io

Browserless no solo destaca en la multitarea; también simplifica los flujos de automatización con API listas para usar.

Funciones de API listas para usar

Browserless ofrece API adaptadas a necesidades habituales de automatización, mejorando su funcionalidad principal:

  • API de web scraping: Extrae datos JSON estructurados de elementos de páginas web.
  • API Unblock: Obtiene contenido HTML después de ejecutar JavaScript.
  • API Function: Ejecuta código Puppeteer personalizado con importaciones de módulos ESM.

Estas API han ofrecido resultados en situaciones reales:

"Empezamos a utilizar los navegadores headless de otra empresa de scraping para ejecutar scripts de Puppeteer. Sin embargo, requería una actualización de Vercel debido a los lentos tiempos de obtención, y los proxies no funcionaban correctamente. Encontré Browserless y tenía nuestro código de Puppeteer funcionando en una hora. Ahora los scrapeos son 5 veces más rápidos y cuestan un tercio, además de que el soporte ha sido excelente." – Nicklas Smit, desarrollador Full-Stack, Takeoff Copenhagen [2]

"Creamos una herramienta de scraping para entrenar nuestros chatbots con datos públicos de sitios web, pero rápidamente se complicó debido a casos límite y a la detección de bots. Encontré Browserless y reservé un día para la integración, pero solo tardé un par de horas. No necesité convertirme en experto en la gestión de servidores proxy o equipos virtuales, así que ahora puedo mantenerme centrado en las partes principales del negocio." – Mike Heap, fundador, My AskAI [2]

¿Qué es browserless?

sbb-itb-23997f1

Guía de integración de bibliotecas

Browserless Chrome funciona sin problemas con las principales bibliotecas de automatización y ofrece rendimiento y fiabilidad. A continuación, verá cómo integrarlo con algunas de las herramientas más populares.

Integración con Puppeteer

Cambiar a Browserless en Puppeteer es sencillo: solo tiene que sustituir puppeteer.launch() por puppeteer.connect() [6].

Tipo de configuraciónEstructura del códigoVentajas
Puppeteer tradicionalUsa puppeteer.launch()Consume recursos locales
Puppeteer con BrowserlessUsa puppeteer.connect()Optimizado para la nube
Browserless mejoradoArgumentos de inicio personalizadosConfiguraciones avanzadas

También puede pasar argumentos de inicio personalizados a través del endpoint WebSocket:

const launchArgs = JSON.stringify({
  args: ['--window-size=1920,1080'],
  stealth: true,
  timeout: 5000
});
const browser = await puppeteer.connect({
  browserWSEndpoint: `wss://production-sfo.browserless.io/?token=YOUR_API_TOKEN_HERE&launch=${launchArgs}`
});

Esta configuración admite opciones avanzadas sin perder simplicidad.

Integración con Playwright

Browserless funciona igual de bien con Playwright. Este es un ejemplo de cómo conectarse mediante Firefox:

// Firefox implementation with Playwright Protocol
const browser = await playwright.firefox.connect(
  'wss://production-sfo.browserless.io/firefox/playwright?token=YOUR_API_TOKEN_HERE'
);

Para los desarrolladores que utilizan Python, Browserless garantiza una experiencia coherente:

with sync_playwright() as p:
  browser = p.firefox.connect('wss://production-sfo.browserless.io/firefox/playwright?token=YOUR_API_TOKEN_HERE')
  context = browser.new_context()

Esta compatibilidad entre lenguajes facilita la integración de Browserless en distintos flujos.

Integración con Selenium

Para Selenium, use la siguiente configuración de Ruby para conectarse a Browserless:

caps = Selenium::WebDriver::Remote::Capabilities.chrome("goog:chromeOptions" => {
  "args" => [
    "--disable-dev-shm-usage",
    "--disable-extensions",
    "--headless",
    "--no-sandbox"
  ]
})

Puede establecer la conexión WebDriver mediante un formato de URL sencillo:

driver = Selenium::WebDriver.for :remote, 
  url: "https://[email protected]/webdriver",
  desired_capabilities: caps

Esta configuración garantiza un funcionamiento seguro y eficiente, aprovechando el aislamiento y otras funciones de ahorro de recursos. Cierre siempre las instancias del navegador después de usarlas para evitar fugas de memoria y optimizar el uso de recursos.

Consejos de rendimiento

Al trabajar con Browserless Chrome, gestionar el rendimiento es clave para mantener la eficiencia. Dado que la plataforma gestiona casi 5 millones de sesiones headless por semana [8], una gestión cuidadosa de los recursos y la seguridad resulta esencial para mantener operaciones fluidas a esta escala.

Gestión de recursos

La gestión eficiente de los recursos comienza con la forma en que se administran las instancias del navegador. En lugar de crear una instancia nueva para cada tarea, reutilice las instancias existentes para reducir la sobrecarga de iniciar nuevas sesiones:

const browser = await puppeteer.connect({ 
  browserWSEndpoint: 'wss://chrome.browserless.io?token=YOUR-TOKEN' 
});
// Reuse the instance by disconnecting instead of closing
await browser.disconnect();

Otra táctica eficaz consiste en bloquear recursos innecesarios para reducir el uso de recursos. A continuación, verá un desglose:

Tipo de recursoImpacto en el rendimientoAcción recomendada
ImágenesConsume mucho ancho de bandaBloquéelas con page.setRequestInterception()
Archivos CSSUsa memoria adicionalDesactívelos salvo que sean esenciales para el diseño
FuentesRalentizan la cargaBloquee las solicitudes de fuentes externas

Por ejemplo, Browserless.io informó de una mejora de rendimiento en septiembre de 2024: bloquear estos recursos redujo el tiempo de ejecución de 2114 ms a 1676 ms [10].

Gestión de tráfico elevado

Una vez optimizados los recursos, el siguiente paso es gestionar eficazmente el tráfico elevado. El escalado horizontal es más fiable que depender de unas pocas instancias grandes.

"Chrome es realmente muy bueno aprovechando todos los recursos del sistema y le gusta usar partes iguales de CPU y memoria para la mayoría de las tareas" [8]

Para gestionar demandas de gran volumen, tenga en cuenta estas estrategias:

  • Use Nginx para equilibrar la carga entre múltiples instancias más pequeñas de Browserless.
  • Active las comprobaciones de estado previas a las solicitudes con PRE_REQUEST_HEALTH_CHECK=true y limite las sesiones simultáneas mediante MAX_CONCURRENT_SESSIONS=10.
  • Garantice una finalización correcta de los procesos para evitar procesos "zombi" persistentes.

"Independientemente de dónde o cómo ejecute sus sesiones headless, es importante eliminar Chrome con el fuego de mil soles" [8]

Configuración de seguridad

Una configuración segura no solo protege sus datos, sino que también garantiza un rendimiento constante bajo cargas elevadas. A continuación, verá cómo proteger su implementación:

  • Almacene las claves de API como valores hash en entornos seguros.
  • Use restricciones de IP para controlar el acceso.
  • Active la gestión de acceso basada en roles.
  • Aplique limitación de tasa a los endpoints de API.

Para implementaciones con Docker, establezca límites de recursos para evitar sobrecargas:

docker run -e MAX_CONCURRENT_SESSIONS=10 \
    -e CONNECTION_TIMEOUT=30000 \
    --memory=2g \
    --cpu-shares=1024 \
    browserless/chrome

Para gestionar código no confiable, use el módulo vm2 para crear entornos aislados. Este enfoque evita ataques que consumen mucha CPU. Desde el 5 de marzo de 2018, Browserless.io utiliza dumb-init dentro de los contenedores Docker para gestionar eficazmente la finalización de procesos [9].

Resumen

Browserless Chrome simplifica la automatización al encargarse de las tareas de infraestructura más exigentes, que antes ocupaban una parte significativa del tiempo de los desarrolladores: alrededor del 60 %. Al aislar Chrome de los servicios principales, garantiza un mejor equilibrio de carga, escalabilidad y gestión de errores. Un ejemplo destacado es Samsara, que renovó sus pruebas basadas en Puppeteer al eliminar la complejidad de mantener una infraestructura especializada. Esto permitió a sus ingenieros centrarse más en desarrollar su producto principal en lugar de preocuparse por las operaciones de backend [1].

A continuación, verá un resumen de lo que convierte a Browserless Chrome en una solución transformadora:

FunciónImpacto empresarial
Separación de infraestructuraEvita que los problemas relacionados con Chrome interrumpan todo el servicio [11]
Equilibrio de carga integradoPermite escalar sin esfuerzo y sin configuración adicional
Evasión de detección de botsAumenta las tasas de éxito de las tareas de automatización web [1]
Integración de la API RESTFacilita mucho tareas como la creación de PDF y la generación de capturas de pantalla [1]

Estas funciones hacen que cambiar a Browserless Chrome sea una opción práctica y eficiente para las necesidades de automatización.

Pasos para empezar

¿Quiere integrar Browserless Chrome en su flujo? Así puede empezar:

  1. Elija un método de integración: Antes de empezar, pruebe la funcionalidad con el depurador en línea. Después, elija entre Puppeteer, Playwright o Selenium según sus herramientas actuales [7].
  2. Actualice su configuración: Sustituya el inicio local de Puppeteer conectándose a Browserless. Solo tiene que actualizar su código para usar puppeteer.connect() con su endpoint de Browserless.
  3. Supervise el rendimiento: Use las herramientas integradas de Browserless, como las comprobaciones de estado y las métricas de cola, para vigilar el rendimiento [1].

References

FAQ

Frequently Asked Questions

Browserless Chrome es un servicio Chrome headless basado en la nube que ejecuta automatización de navegadores para web scraping, generación de PDF, pruebas y renderizado de JavaScript sin necesidad de infraestructura local de navegadores.

¿Te resultó útil? Compártelo →

Escrito por

Vasiliy Datsenko

Jefe de Soporte al Cliente

Vasiliy Datsenko es Jefe de Soporte al Cliente en Latenode y un escritor de automatización centrado en productos. Su trabajo conecta las conversaciones con los clientes, la investigación sobre automatización de flujos de trabajo, los casos de uso de IA y la educación práctica sobre productos para equipos que intentan automatizar procesos comerciales reales.

Perfil del autor →

Verificado por

Oleg Zankov

CEO Latenode, No-code Expert

Con una ética arraigada en la innovación, la resolución de problemas y la experiencia de usuario, me enfoco en capacitar a los equipos para crear integraciones personalizadas y automatizar flujos de trabajo con facilidad y eficiencia. Trayendo una gran experiencia en desarrollo empresarial, emprendimiento tecnológico y desarrollo de software, reconocí la necesidad de una solución de integración más accesible, escalable y adaptable. Así nació Latenode.com. Con nuestra plataforma, las empresas pueden aprovechar el poder de la tecnología sin necesidad de conocimientos extensos de codificación. Apasionado por fomentar un futuro donde la tecnología nos sirva, y no al revés, mi misión es simplificar procesos complejos. Creo en democratizar la tecnología y equipar a los equipos con las herramientas para innovar, crecer y tener éxito en un mundo cada vez más digital.

Perfil del autor →

Seguir leyendo