Raspatar básico no sale de la función async.
Cuando ejecuto esta función, obtengo el resultado esperado a través de console.log, pero la función no se cierra. ¿Por qué es así?
const puppeteer = require('puppeteer');
async function scrape(url) {
const browser = await puppeteer.launch();
const page = await browser.newPage();
const target = await page.goto(url);
const waiting = await page.waitForXPath('XPATH...');
const [el] = await page.$x('XPATH...');
const txt = await el.getProperty('textContent');
const rawTxt = txt.jsonValue();
console.log(rawTxt);
}
davy.ai
La función no se finaliza porque no tiene una instrucción
browser.close()
. La instanciabrowser
lanzada porpuppeteer
continuará ejecutándose en segundo plano hasta que se cierre. Agregarawait browser.close()
al final de la función asegurará que se cierre el navegador y se salga de la función.