WhatsApp chat

Scraping con Puppeteer y Node.js

Marlon Falcon Hernandez, • nodejswebscraping
Back

El web scraping consiste en extraer información de páginas web de forma automática. Puppeteer es una librería de Node.js que controla una instancia de Chrome o Chromium sin interfaz gráfica (headless), por lo que puede cargar páginas igual que lo haría un navegador real. En este ejemplo lo combinamos con jsdom para analizar el HTML obtenido y extraer los títulos de los resultados de una búsqueda.

Instalación

Instalamos las dependencias con npm install puppeteer jsdom. Puppeteer descarga automáticamente una versión de Chromium compatible.

Código

index.js

const puppeteer = require('puppeteer');
const jsdom = require('jsdom');

(async () => {
  try {
    // Abrimos una instancia del puppeteer y accedemos a la url de google
    const browser = await puppeteer.launch() ;
    const page = await browser.newPage();
    const response = await page.goto('https://www.google.com/search?q=web+cursos+odoo');
    const body = await response.text();

    // Creamos una instancia del resultado devuelto por puppeter para parsearlo con jsdom
    const { window: { document } } = new jsdom.JSDOM(body);

    // Seleccionamos los titulos y lo mostramos en consola
    document.querySelectorAll('.g h3')
      .forEach(element => console.log(element.textContent));

    // Cerramos el puppeteer
    await browser.close();
  } catch (error) {
    console.error(error);
  }
})();

Lo ejecutamos con node index.js y veremos en la consola los títulos encontrados.

Notas