Automatiza el Navegador con la API de Renderizado del Navegador de Workers

Rate this content
Bookmark

En esta charla, exploraremos cómo la API de Renderizado del Navegador puede automatizar tareas del navegador, liberando a los desarrolladores del trabajo manual repetitivo. Comenzaremos con una visión general de Cloudflare Workers y cómo permiten ejecutar JavaScript en el borde. Luego, discutiremos la automatización del navegador en detalle, cubriendo cómo interactuar con el DOM, completar formularios y extraer datos de páginas web. Mostraremos ejemplos del mundo real de cómo la automatización del navegador con Cloudflare Workers puede mejorar la experiencia del usuario de las aplicaciones web, aumentar la productividad y automatizar tareas, como generar capturas de pantalla y PDFs de páginas web, probar aplicaciones web y realizar auditorías de rendimiento. Al final de esta charla, los asistentes obtendrán una mejor comprensión de cómo utilizar la API de Renderizado del Navegador para automatizar tareas del navegador y llevar sus habilidades de desarrollo web al siguiente nivel.

This talk has been presented at JSNation 2024, check out the latest edition of this JavaScript Conference.

FAQ

La API de renderizado del navegador de los trabajadores es una herramienta ofrecida por Cloudflare que permite ejecutar automatización dentro del navegador, como navegar a un sitio web específico, tomar capturas de pantalla, crear PDFs, entre otros, directamente desde un entorno de trabajador de Cloudflare.

La API de renderizado del navegador permite escribir scripts que automatizan tareas repetitivas en el navegador, como verificar la disponibilidad de apartamentos en un sitio web a horas específicas y fechas determinadas, lo cual puede simplificar y acelerar el proceso de búsqueda de vivienda.

Cloudflare utiliza una versión adaptada de Puppeteer, llamada Cloudflare Puppeteer, que está diseñada para integrarse y operar dentro de los trabajadores de Cloudflare, permitiendo controlar y automatizar un navegador sin cabeza directamente desde un entorno de trabajador.

Además de la automatización básica del navegador, Cloudflare ha introducido características como la gestión de sesiones de navegador, que permite reutilizar sesiones de navegación, y Durable Objects para extender sesiones, aumentando la eficiencia y capacidad de las tareas automatizadas.

La API de renderizado del navegador es útil para diversas tareas como tomar capturas de pantalla automáticas, crear PDFs de páginas web, automatizar pruebas, recopilar métricas de rendimiento de aplicaciones y monitorear las tendencias de Internet, entre otros.

Se puede encontrar más información y ejemplos sobre la automatización del navegador utilizando la API de renderizado del navegador de Cloudflare en la documentación oficial de Cloudflare y en las publicaciones del blog de la compañía.

Gift Egwuenu
Gift Egwuenu
20 min
17 Jun, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
La charla discute la automatización del navegador utilizando la API de Renderizado del Navegador de Workers, que permite tareas como navegar por sitios web, tomar capturas de pantalla y crear PDFs. Cloudflare integró Puppeteer con sus workers para automatizar tareas del navegador, y su API de renderizado del navegador combina el aislamiento remoto del navegador con Puppeteer. Los casos de uso para la API incluyen tomar capturas de pantalla, generar PDFs, automatizar aplicaciones web y recopilar métricas de rendimiento. La charla también cubre la extensión de sesiones y métricas de rendimiento utilizando Durable Objects. ¡Gracias por asistir!

1. Introducción a la Automatización del Navegador

Short description:

Estoy emocionado de estar aquí en JS Nation, hablando sobre la automatización del navegador con la API de renderizado del navegador de los trabajadores. Te mostraré cómo realizar tareas de automatización del navegador utilizando la Plataforma de Desarrollo de Cloudflare y compartiré casos de uso y ejemplos. Soy Gift Iguenu, un defensor del desarrollo en Cloudflare. Permíteme contarte una breve historia personal sobre encontrar un apartamento en los Países Bajos. Tenía en mente un apartamento específico y tenía que verificar manualmente el sitio web cada semana.

¡Hola a todos! Estoy realmente emocionado de estar aquí en JS Nation. Voy a hablar sobre cómo automatizar el navegador con la API de renderizado del navegador de los trabajadores. Ahora, eso es un trabalenguas. A partir de ahora, me referiré a esto como simplemente API de renderizado o renderizado del navegador. Estoy realmente triste de no poder asistir a la conferencia en persona, pero espero que disfruten mi sesión.

En esta sesión, te mostraré cómo puedes realizar tareas de automatización del navegador utilizando la Plataforma de Desarrollo de Cloudflare. Y al final, te mostraré algunos casos de uso interesantes y ejemplos de algunas tareas que puedes automatizar con el navegador. Nuevamente, soy Gift Iguenu. Trabajo como defensor del desarrollo en Cloudflare. Estoy realmente emocionado acerca de la Plataforma de Desarrollo en Cloudflare, y hablo de ello en Twitter slash mi blog personal. Entonces, si quieres seguirme allí, sería genial.

Muy bien. Tengo una breve historia personal que contar antes de comenzar esta charla, y probablemente esté basada en mi experiencia como expatriado viviendo en los Países Bajos. Así que siento que esto será algo con lo que te podrás identificar si vives en los Países Bajos, o si vives en alguna ciudad importante que tenga una crisis de vivienda. Es súper difícil encontrar un apartamento. Por lo general, lleva alrededor de, ¿qué, uno a tres meses, si acabas de mudarte o te mudaste a una nueva ciudad, conseguir un buen apartamento, ¿verdad? Y también es bastante caro. En los Países Bajos, el año pasado, hubo escasez de viviendas, más de 390,000 hogares tenían escasez. Así que fue muy difícil encontrar un apartamento.

Y en ese momento, estaba buscando un apartamento en los Países Bajos, específicamente en Ámsterdam, porque vivía en una ciudad diferente y quería mudarme a Ámsterdam. Y tenía en mente un apartamento específico al que quería mudarme. Es como un complejo de edificios con varios tipos de apartamentos. Ahora, lo interesante de este lugar específico se llama nuestro dominio. Básicamente, cómo funciona es que solo necesitas ir al sitio web y una vez que haya un apartamento disponible, lo pagas, y eso significa que una vez que puedas pagar, significa que tienes el apartamento.

Ahora, el problema es que para cada apartamento que está disponible en ese edificio, ya está reservado, ¿verdad? Así que cada semana, si tal vez alguien se muda o hay disponibilidad, actualizarían eso cada semana los miércoles a las 12 p.m. Así que durante el próximo mes, iba al sitio web los miércoles a las 12 p.m. para verificar si había disponibilidad, ¿verdad? Así que estaba buscando un apartamento de dos habitaciones. Y, por supuesto, me llevó un tiempo poder encontrar esto. Estaba verificando manualmente los sitios web cada semana, lo cual no era agradable. Pero pensando en el tema en cuestión, la automatización del navegador, en ese momento, si hubiera sabido sobre esto, es algo que habría hecho.

2. Automatización de tareas con la API de renderizado del navegador

Short description:

La API de renderizado del navegador de los trabajadores te permite automatizar tareas dentro de tu navegador, como navegar a un sitio web, tomar capturas de pantalla y crear PDFs. La utilicé para automatizar el proceso de encontrar un apartamento, navegar al sitio web en el momento específico y pagar por el apartamento disponible. La automatización del navegador también se puede utilizar para tareas como la automatización de correos electrónicos. Cloudflare Workers es un entorno sin servidor que admite múltiples lenguajes de programación como JavaScript, TypeScript y Python. La plataforma de desarrollo de Cloudflare ofrece la API de renderizado del navegador, que permite a los desarrolladores controlar e interactuar con una instancia de navegador sin cabeza. Esta API se basa en Puppeteer, una biblioteca de Node.js del equipo de Chrome DevTools.

Pero solo para que todos lo sepan, así es como lo resolví, utilizando la automatización del navegador. La API de renderizado del navegador de los trabajadores básicamente te permite ejecutar automatización dentro de tu navegador. Puedes hacer cosas como navegar a un sitio web específico, tomar una captura de pantalla del sitio web, crear un PDF a partir del sitio web, y más.

Para mi caso específico, en lugar de ir al sitio web los miércoles a las 12 p.m. cada semana, quería automatizar este proceso, ¿verdad? Quería permitir que mi navegador lo hiciera por mí, sin tener que hacerlo yo mismo. ¿Qué hice entonces? Básicamente escribí el trabajador de renderizado del navegador que navegaría al sitio web específico en el momento específico. Honestamente, simplemente lo ejecutaría cada vez, solo porque quería asegurarme de poder encontrar un apartamento, ¿verdad? Lo que hace es navegar a los sitios web, tomar una captura de pantalla de la página de disponibilidad específica. Así que si hay disponibilidad en un momento determinado, el sitio web me dirá `oh, tienes suerte, actualmente hay un apartamento disponible`. De hecho, en este momento específico, había tres apartamentos diferentes disponibles. Así que pude ir al sitio web y pagar por el apartamento que quería hacer.

Por supuesto, este es solo un ejemplo interesante de cómo la automatización del navegador puede ayudarte. Hay mucho más que puedes hacer. Por ejemplo, con esta demostración, también podría ir un paso más allá y hacer un trabajo en Chrome para que este trabajador se ejecute en un día específico cada semana. También podría agregar la automatización de correo electrónico, donde si hay un apartamento, en lugar de devolver el valor del apartamento al sitio web, podría enviarme un correo electrónico y me informaría automáticamente de la disponibilidad, ¿verdad? Ese es un caso de uso real en el que creo que la automatización del navegador puede ayudar.

Con eso, quiero hablar sobre la tecnología subyacente en esa configuración que acabo de mostrarte, que son los trabajadores de Cloudflare. Si no estás familiarizado, los trabajadores de Cloudflare es un entorno sin servidor que te permite crear nuevas aplicaciones o mejorar las existentes con lenguajes que ya conoces como JavaScript, TypeScript o incluso Python. Este es un ejemplo de trabajador de Cloudflare. Básicamente, lo que hace es devolver una cadena o una matriz de datos de conferencia, en este caso, GSNation, y lo devuelvo a mi navegador. Está escrito en JavaScript. Este ejemplo que te estoy mostrando, pero también puedes escribirlo en TypeScript o en Python si quieres.

Avanzando, solo unos pocos diapositivas más. Sí, la API de renderizado del navegador es uno de los servicios que ofrecemos en la plataforma de desarrollo de Cloudflare. Básicamente, te permite como desarrollador controlar e interactuar con una instancia de navegador sin cabeza. A partir de eso, puedes crear flujos automáticos, por ejemplo, navegar a un sitio web, tomar una captura de pantalla y mucho más. La tecnología subyacente aquí, si alguna vez has explorado el tema de la automatización del navegador, es posible que hayas oído hablar de Puppeteer. Puppeteer es una biblioteca de Node.js del equipo de Chrome DevTools. Básicamente proporciona una abstracción del protocolo de DevTools para ayudarte a controlar Chrome o Chromium. Ahora, la API de renderizado del navegador de los trabajadores es un fork de Puppeteer.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

El Futuro de las Herramientas de Rendimiento
JSNation 2022JSNation 2022
21 min
El Futuro de las Herramientas de Rendimiento
Top Content
Today's Talk discusses the future of performance tooling, focusing on user-centric, actionable, and contextual approaches. The introduction highlights Adi Osmani's expertise in performance tools and his passion for DevTools features. The Talk explores the integration of user flows into DevTools and Lighthouse, enabling performance measurement and optimization. It also showcases the import/export feature for user flows and the collaboration potential with Lighthouse. The Talk further delves into the use of flows with other tools like web page test and Cypress, offering cross-browser testing capabilities. The actionable aspect emphasizes the importance of metrics like Interaction to Next Paint and Total Blocking Time, as well as the improvements in Lighthouse and performance debugging tools. Lastly, the Talk emphasizes the iterative nature of performance improvement and the user-centric, actionable, and contextual future of performance tooling.
Instalar Nada: Interfaces de Aplicación con APIs Nativas del Navegador
JSNation 2024JSNation 2024
31 min
Instalar Nada: Interfaces de Aplicación con APIs Nativas del Navegador
This Talk introduces real demos using HTML, CSS, and JavaScript to showcase new or underutilized browser APIs, with ship scores provided for each API. The dialogue element allows for the creation of modals with minimal JavaScript and is supported by 96% of browsers. The web animations API is a simple and well-supported solution for creating animations, while the view transitions API offers easy animation workarounds without CSS. The scroll snap API allows for swipers without JavaScript, providing a smooth scrolling experience.
Viviendo al Límite
React Advanced 2021React Advanced 2021
36 min
Viviendo al Límite
The Talk discusses the future of React and introduces new APIs, including streaming rendering and server components. React Suspense allows for asynchronous loading of components and data fetching. The use of serverless computing, specifically Cloudflare Workers, is explored as a way to improve performance. The Talk emphasizes the potential for simplifying the React ecosystem and the excitement about the new API.
Ampliando los límites de la codificación de video en navegadores con WebCodecs
JSNation 2023JSNation 2023
25 min
Ampliando los límites de la codificación de video en navegadores con WebCodecs
Top Content
This Talk explores the challenges and solutions in video encoding with web codecs. It discusses drawing and recording video on the web, capturing and encoding video frames, and introduces the WebCodecs API. The Talk also covers configuring the video encoder, understanding codecs and containers, and the video encoding process with muxing using ffmpeg. The speaker shares their experience in building a video editing tool on the browser and showcases Slantit, a tool for making product videos.
Rome, ¡una cadena de herramientas moderna!
JSNation 2023JSNation 2023
31 min
Rome, ¡una cadena de herramientas moderna!
Top Content
Rome is a toolchain built in Rust that aims to replace multiple tools and provide high-quality diagnostics for code maintenance. It simplifies tool interactions by performing all operations once, generating a shared structure for all tools. Rome offers a customizable format experience with a stable formatter and a linter with over 150 rules. It integrates with VCS and VLSP, supports error-resilient parsing, and has exciting plans for the future, including the ability to create JavaScript plugins. Rome aims to be a top-notch toolchain and welcomes community input to improve its work.
Construyendo Aplicaciones Multijugador con Cloudflare Workers y Durable Objects
Node Congress 2023Node Congress 2023
28 min
Construyendo Aplicaciones Multijugador con Cloudflare Workers y Durable Objects
Top Content
Durable Objects are a part of CloudFlare's long-term goal to expand application possibilities on workers, allowing for the building of scalable collaborative applications. Durable Objects provide a way to store global state and coordinate multi-client applications. They can be created as close to the user as possible and have unique IDs for routing requests. Durable Objects have a persistent storage API with strongly consistent semantics and IO gates to prevent correctness errors. They are well-suited for collaborative applications and can be used with WebSockets. Performance impact and read replicas are considerations for accessing Durable Objects globally.

Workshops on related topic

Soluciona el 100% de tus errores: Cómo encontrar problemas más rápido con la Reproducción de Sesiones
JSNation 2023JSNation 2023
44 min
Soluciona el 100% de tus errores: Cómo encontrar problemas más rápido con la Reproducción de Sesiones
WorkshopFree
Ryan Albrecht
Ryan Albrecht
¿Conoces ese molesto error? ¿El que no aparece localmente? Y no importa cuántas veces intentes recrear el entorno, no puedes reproducirlo. Has revisado las migas de pan, leído la traza de pila y ahora estás jugando al detective para unir los tickets de soporte y asegurarte de que sea real.
Únete al desarrollador de Sentry, Ryan Albrecht, en esta charla para aprender cómo los desarrolladores pueden utilizar la Reproducción de Sesiones, una herramienta que proporciona reproducciones de video de las interacciones de los usuarios, para identificar, reproducir y resolver errores y problemas de rendimiento más rápido (sin golpear tu cabeza contra el teclado).
Escribiendo Módulos Universales para Deno, Node y el Navegador
Node Congress 2022Node Congress 2022
57 min
Escribiendo Módulos Universales para Deno, Node y el Navegador
Workshop
Luca Casonato
Luca Casonato
En este masterclass te guiaré en la escritura de un módulo en TypeScript que pueda ser utilizado por usuarios de Deno, Node y los navegadores. Explicaré cómo configurar el formato, linting y pruebas en Deno, y luego cómo publicar tu módulo en deno.land/x y npm. Comenzaremos con una breve introducción sobre qué es Deno.