Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

406
Views
titiritero page.evaluate() devuelve objeto vacío

Estoy tratando de raspar esta web https://poe.ninja/challenge/builds?time-machine=day-6 usando Puppeteer. Intenté la página Titiritero. Evaluate querySelectorAll devuelve objetos vacíos y vi muchas preguntas similares aquí. pero ninguno de ellos resuelve mi problema.

Aquí está mi código:

 const scrapeNinja = async () => { const browser = await puppeteer.launch({headless: false}) const page = await browser.newPage() await page.goto(`https://poe.ninja/challenge/builds?time-machine=day-6`, { waitUntil: 'domcontentloaded', }) const getArray = await page.evaluate(() => { return Array.from(document.querySelectorAll( '#openSidebar > div > section:nth-child(3) > div > div > div > ul li .css-1h2ruwl' )).map(e => e.textContent) }) console.log(getArray) }

Sé que los valores devueltos por page.evaluate deben ser serializables. no es este Array.from(document.querySelectorAll('#openSidebar > div > section:nth-child(3) > div > div > div > ul li .css-1h2ruwl')).map(e => e.textContent) no es un valor serializable? Intenté usar esto en la sección de herramientas de desarrollo, devuelve exactamente lo que quiero, pero de vuelta a node.js, solo devuelve una matriz vacía...

¿Estoy haciendo algo mal?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Parece que el problema es realmente esperar, está buscando elementos incluso si el contenido completo de dom no está completamente cargado.

 const scrapeNinja = async () => { const browser = await puppeteer.launch({headless: false}) const page = await browser.newPage() await page.goto(`https://poe.ninja/challenge/builds?time-machine=day-6`, { waitUntil: 'networkidle2', }) const getArray = await page.$$eval('#openSidebar > div > section:nth-child(3) > div > div > div > ul li .css-1h2ruwl', el => el.map(item => item.textContent)) console.log(getArray) } scrapeNinja()

Este código funciona perfectamente para mí, incluso si no tiene que inicializar la matriz. En el futuro use networkidle2 en la opción waitUntil

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!