General

George Miloradovich
Investigador, redactor y entrevistador de casos prácticos
Febrero 28, 2025
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:
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.
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.
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.
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.
Dependiendo de la biblioteca que uses, aquí te mostramos cómo puedes establecer tu primera conexión:
const browser = await puppeteer.connect({
browserWSEndpoint: 'wss://chrome.browserless.io?token=YOUR-API-TOKEN'
});
const browser = await playwright.firefox.connect(
`wss://production-sfo.browserless.io/firefox/playwright?token=${TOKEN}&proxy=residential`
);
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.
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.
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.
Browserless ofrece API adaptadas a las necesidades de automatización más comunes, mejorando su funcionalidad principal:
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
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.
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.
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.
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.
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.
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.
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:
PRE_REQUEST_HEALTH_CHECK=true
y limitar las sesiones simultáneas utilizando MAX_CONCURRENT_SESSIONS=10
."Independientemente de dónde o cómo ejecutes tus sesiones sin cabeza, es importante matar Cromado con el fuego de mil soles"
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:
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.
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.
¿Quieres integrar Chrome sin navegador en tu flujo de trabajo? Aquí te contamos cómo puedes empezar:
puppeteer.connect()
con su punto final sin navegador.