Web Scraping significa recopilar cualquier tipo de datos, como imágenes, texto o video de Internet. Es muy útil cuando alguien tiene que recopilar una gran cantidad de datos, ahorra mucho tiempo al automatizar el proceso.
Puppeteer: en Node.js, hay muchos módulos para Web Scraping, pero uno de los módulos populares y fáciles de implementar es Puppeteer. Puppeteer proporciona muchos métodos que hacen que todo el proceso de Web Scraping y Web Automation sea mucho más fácil. Podemos instalar este módulo en nuestro directorio de proyectos escribiendo el comando.
npm install puppeteer
Acercarse:
Paso 1: requiere el módulo de titiritero
const puppeteer = require('puppeteer');
Paso 2: crea una función asíncrona
async function webScraper() { }; webScraper();
Paso 3: dentro de la función, cree dos constantes, la primera es una constante de navegador que se usa para iniciar Puppeteer, la segunda es una constante de página que se usa para navegar y abrir una nueva página con fines de desguace.
async function webScraper() { const browser = await puppeteer.launch({}) const page = await browser.newPage() }; webScraper();
Paso 4: usando el método goto , abra el sitio web que queremos raspar, luego seleccione el elemento de texto que queremos, luego extraiga el texto de ese elemento y registre el texto en la consola.
await page.goto(‘https://www.geeksforgeeks.org/explain-the-mechanism-of-event-loop-in-node-js/’)
var elemento = await page.waitFor(“h1”)
var text = esperar página.evaluar(elemento => elemento.textContent, elemento)
consola.log(texto)
navegador.cerrar()
Ejemplo:
Javascript
const puppeteer = require('puppeteer'); async function webScraper() { const browser = await puppeteer.launch({}) const page = await browser.newPage() await page.goto( 'https://www.geeksforgeeks.org/explain-the-mechanism-of-event-loop-in-node-js/') var element = await page.waitFor("h1") var text = await page.evaluate( element => element.textContent, element) console.log(text) browser.close() }; webScraper();
Paso para ejecutar la aplicación: Abra la terminal y escriba el siguiente comando.
node app.js
Producción: