General
George Miloradovich
Investigador, redactor y entrevistador de casos prácticos
Febrero 28, 2025
Una plataforma de código bajo que combina la simplicidad sin código con el poder del código completo 🚀
Empieza ahora gratis
Febrero 28, 2025
8
min leer

Chrome sin navegador: una herramienta poderosa para la automatización del navegador

George Miloradovich
Investigador, redactor y entrevistador de casos prácticos
Tabla de contenidos.

Chrome sin navegador es un servicio basado en la nube que simplifica la automatización del navegador al ejecutar Chrome sin interfaz gráfica para tareas como el rastreo web, la generación de PDF y las pruebas. Elimina la necesidad de configuraciones locales del navegador y administra automáticamente los fallos del navegador, el aislamiento de sesiones y la optimización de recursos. Entre sus principales ventajas se incluyen las siguientes:

  • Sin configuración local:Utilice Docker o la implementación en la nube para comenzar rápidamente.
  • Rendimiento rápido:Capturas de pantalla en ~1 segundo, PDF en ~2 segundos.
  • Omisión de detección de bots:Supera bloqueadores como Cloudflare Para una automatización confiable.
  • Eficiencia de recursos:Reduce el uso de servidores proxy y máquinas virtuales hasta en un 90%.

Configuración rápida:Integrarse con bibliotecas populares como Titiritero, Dramaturgoo Selenio Utilizando métodos de conexión simples. Browserless también ofrece API para web scraping, renderizado de JavaScript y flujos de trabajo de automatización personalizados.

Comparación rápida de características

Feature Beneficio Ejemplo
Limpieza de sesión Elimina automáticamente las sesiones inactivas Mantiene los recursos optimizados
Prevención de detección de bots Evita bloqueadores como Cloudflare Fiable para tareas de scraping
Procesamiento multitarea Maneja solicitudes simultáneas de manera efectiva Más de 2 millones de sesiones procesadas semanalmente
API listas para usar Simplifica las tareas de automatización. Extracción de datos JSON, PDF

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

Guía de preparación

Cómo instalar

Para comenzar a usar Chrome sin navegador, puede elegir entre dos opciones de instalación: una configuración local mediante Docker o una implementación en la nube. Para una configuración local mediante Docker, utilice el siguiente comando:

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

Este comando extrae la imagen más reciente y la hace accesible en el puerto 3000. Funciona sin problemas en Windows, macOS y Linux.

Configuracion inicial

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

Feature Configuración predeterminada Propósito
Limpieza de sesión 30 segundos Elimina automáticamente las sesiones inactivas
Los controles de salud implante Garantiza la estabilidad del sistema.
Cola de solicitudes configurable Administra múltiples conexiones simultáneas
Límites de recursos Ajustable Controla el uso de la memoria y la 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 utilizando su método de integración preferido.

Estableciendo tu primera conexión

Dependiendo de la biblioteca que uses, aquí te mostramos cómo puedes establecer tu primera conexión:

  • Conexión de titiritero
const browser = await puppeteer.connect({
  browserWSEndpoint: 'wss://chrome.browserless.io?token=YOUR-API-TOKEN'
});
  • Integración de dramaturgos
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 confiabilidad con dos puntos finales regionales: la costa oeste de EE. UU. (production-sfo.browserless.io) y Europa (production-lon.browserless.io). Estos puntos finales manejan el aislamiento de sesiones, administran solicitudes simultáneas y se recuperan de fallas automáticamente. También limpian las sesiones inactivas después de 30 segundos al iniciar una nueva instancia del navegador para cada nueva sesión.

Principales características

Conceptos básicos del navegador sin interfaz gráfica

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

Aquí hay una descripción general rápida de sus características clave:

Feature Descripción original: Beneficio
Aislamiento de sesión Sesiones de navegador independientes Reduce los costes de infraestructura
Recuperación automática Se reinicia después de fallas Mantiene las operaciones en marcha
Optimización de recursos Uso eficiente de la memoria y la CPU Aumenta el rendimiento general

Más allá de estos elementos esenciales, Browserless está diseñado para gestionar múltiples tareas al mismo tiempo con facilidad.

Procesamiento multitarea

Con más de 2 millones de sesiones gestionadas, Browserless Chrome ha generado millones de capturas de pantalla, archivos PDF y resultados de pruebas. Su sistema de gestión de colas inteligente garantiza que las solicitudes se procesen sin sobrecargar los recursos, manteniendo un rendimiento constante. Esto ha demostrado ser especialmente útil para empresas como Samsara, que pasó de un servicio de pruebas interno a Browserless para una mejor escalabilidad.

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

Browserless no solo se destaca en la multitarea, sino que también simplifica los flujos de trabajo de automatización con API listas para usar.

Funciones API listas para usar

Browserless ofrece API adaptadas a las necesidades de automatización más comunes, mejorando su funcionalidad principal:

  • API de raspado web:Extrae datos JSON estructurados de los elementos de la página web.
  • Desbloquear API:Obtiene contenido HTML después de ejecutar JavaScript.
  • API de función:Ejecuta código Puppeteer personalizado con importaciones de módulos ESM.

Estas API han proporcionado resultados reales:

"Comenzamos a usar los navegadores sin interfaz gráfica de otra empresa de scraping para ejecutar scripts de Puppeteer. Pero fue necesario actualizar Vercel debido a los tiempos de obtención lentos y los servidores proxy no se ejecutaban correctamente. Encontré Browserless y puse en funcionamiento nuestro código de Puppeteer en una hora. Los scrapings ahora son cinco veces más rápidos y cuestan un tercio del precio, además, el soporte ha sido excelente". – Nicklas Smit, desarrollador full-stack, Takeoff Copenhagen

"Creamos una herramienta de extracción de datos para entrenar a nuestros chatbots con datos de sitios web públicos, pero rápidamente se complicó debido a casos extremos y la detección de bots. Encontré Browserless y reservé un día para la integración, pero solo me llevó un par de horas. No necesité convertirme en un experto en la gestión de servidores proxy o computadoras virtuales, por lo que ahora puedo concentrarme en las partes centrales del negocio". – Mike Heap, fundador de My AskAI

¿Qué es "sin navegador"?

sbb-itb-23997f1

Guía de integración de bibliotecas

Chrome sin navegador funciona a la perfección con las principales bibliotecas de automatización, lo que ofrece rendimiento y confiabilidad. A continuación, le mostramos cómo puede integrarlo con algunas de las herramientas más populares.

Titiritero Integración:

Titiritero

Cambiar a Sin navegador en Puppeteer es simple: solo reemplace puppeteer.launch() con puppeteer.connect() .

Tipo de instalación Estructura del código Ventajas
Titiritero tradicional Usos puppeteer.launch() Consume recursos locales
Titiritero sin navegador Usos puppeteer.connect() Optimizado para la nube
Navegador mejorado sin navegador Argumentos de lanzamiento personalizados Configuraciones avanzadas

También puedes pasar argumentos de lanzamiento personalizados a través del punto final de 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 configuraciones avanzadas manteniendo la simplicidad.

Dramaturgo Integración:

Dramaturgo

El navegador sin navegador funciona igual de bien con Playwright. Aquí tienes un ejemplo de cómo conectarte usando 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 consistente:

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 idiomas facilita la integración de Browserless en diversos flujos de trabajo.

Selenio Integración:

Selenio

Para Selenium, utilice 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 utilizando un formato de URL simple:

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

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

Consejos de rendimiento

Al trabajar con Chrome sin navegador, la gestión del rendimiento es fundamental para mantener la eficiencia. Dado que la plataforma gestiona casi 5 millones de sesiones sin interfaz gráfica por semana, la gestión cuidadosa de los recursos y la seguridad es esencial para que las operaciones a esta escala sean fluidas.

Gestión de Recursos

La gestión eficiente de los recursos comienza con la forma en que se manejan las instancias del navegador. En lugar de crear una nueva instancia para cada tarea, reutilice las instancias existentes para reducir la sobrecarga que supone 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 es bloquear los activos innecesarios para reducir el uso de recursos. A continuación, se detallan los pasos a seguir:

Tipo de Recurso Impacto en el rendimiento Acción sugerida
Imágenes Consume mucho ancho de banda Bloquear usando page.setRequestInterception()
Archivos CSS Utiliza memoria extra Deshabilitar a menos que sea crítico para el diseño
Fuentes Ralentiza la carga Bloquear solicitudes de fuentes externas

Por ejemplo, Browserless.io informó una mejora en el rendimiento en septiembre de 2024, donde el bloqueo de estos recursos redujo el tiempo de ejecución de 2,114 ms a 1,676 ms.

Manejo de alto tráfico

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

"Chrome es realmente realmente "Es bueno en el uso de todos los recursos del sistema y le encanta usar partes iguales de CPU y memoria para la mayoría de las cosas"

Para manejar demandas de gran volumen, considere estas estrategias:

  • Usos Nginx para equilibrar la carga entre múltiples instancias sin navegador más pequeñas.
  • Habilite los controles de salud previos a la solicitud con PRE_REQUEST_HEALTH_CHECK=true y limitar las sesiones simultáneas utilizando MAX_CONCURRENT_SESSIONS=10.
  • Asegúrese de finalizar correctamente el proceso para evitar que queden procesos "zombi" persistentes.

"Independientemente de dónde o cómo ejecutes tus sesiones sin cabeza, es importante matar Cromado con el fuego de mil soles"

Configuración de seguridad

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

  • Almacene claves API como valores hash en entornos seguros.
  • Utilice restricciones de IP para controlar el acceso.
  • Habilitar la gestión de acceso basada en roles.
  • Aplicar limitación de velocidad a los puntos finales de API.

Para las implementaciones de Docker, establezca límites de recursos para evitar la sobrecarga:

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

Para manejar código no confiable, utilice el vm2 módulo para crear entornos aislados. Este enfoque evita ataques que consumen mucha CPU. Desde el 5 de marzo de 2018, Browserless.io ha estado utilizando dumb-init dentro de los contenedores Docker para gestionar la terminación del proceso de manera efectiva.

Resum

Chrome sin navegador simplifica la automatización al hacerse cargo de la parte más pesada de las tareas de infraestructura, que solían ocupar una parte importante 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 notable es Samsara, que renovó sus pruebas basadas en Puppeteer eliminando la molestia de mantener una infraestructura especializada. Esto permitió a sus ingenieros centrarse más en la creación de su producto principal en lugar de preocuparse por las operaciones de backend.

A continuación, se muestra una instantánea de lo que hace que Chrome sin navegador sea un cambio radical:

Feature Impacto en el negocio
Separación de infraestructura Evita que los problemas relacionados con Chrome interrumpan todo el servicio
Equilibrio de carga integrado Permite un escalado sin esfuerzo y sin configuración adicional
Evitar la detección de bots Aumenta las tasas de éxito de las tareas de automatización web
Integración de API REST Hace que tareas como la creación de PDF y la generación de capturas de pantalla sean mucho más fáciles.

Estas características hacen que cambiar a Chrome sin navegador sea una opción práctica y eficiente para las necesidades de automatización.

Primeros pasos

¿Quieres integrar Chrome sin navegador en tu flujo de trabajo? Aquí te contamos cómo puedes empezar:

  1. Elija un método de integración:Antes de comenzar, prueba la funcionalidad con el depurador en línea. Luego, decide entre Puppeteer, Playwright o Selenium según tus herramientas actuales.
  2. Actualice su configuración:Reemplace el lanzamiento local de Puppeteer conectándose a Browserless. Simplemente actualice su código para usar puppeteer.connect() con su punto final sin navegador.
  3. Seguimiento del rendimiento:Utilice las herramientas integradas de Browserless, como controles de estado y métricas de cola, para controlar el rendimiento.

Blog y artículos

Blogs relacionados

Caso de uso

Respaldado por