Estoy tratando de raspar un elemento de precio de un sitio web usando el método page.evaluate , pero siempre devuelve {} cuando console.log el resultado. aquí está el código:
const browser = await pptr.launch() const page = await browser.newPage() await page.goto("url") const price = await page.evaluate(() => { return document.querySelector("selector") }) console.log(price) // returns {} También intenté usar page.$(selector) , devuelve una matriz que contiene ElementHandle y un montón de otras cosas que no entiendo completamente qué son
¡Gracias!
Está intentando pasar un identificador de elemento desde el navegador a su aplicación de titiritero. Para transferir datos desde el navegador, el titiritero usa JSON.stringify y el identificador del elemento se transforma en un objeto vacío.
Podría intentar devolver algo más a su aplicación, como el contenido de texto del elemento.
const browser = await pptr.launch() const page = await browser.newPage() await page.goto("url") const price = await page.evaluate(() => { return document.querySelector("selector").textContent }) console.log(price)