Estoy tratando de raspar los títulos de conciertos, pero solo me da los primeros 7-8 títulos donde debería ser como 48 títulos. Al verificar el problema, noté que no obtengo todos los elementos secundarios del contenedor del concierto. Solo está dando los primeros 8 de los niños. Después de revisar el sitio web, pude ver que cuando abrí la página, devuelve 8 del contenedor de conciertos primero, y luego, después de un segundo, se carga el resto del contenedor de conciertos.
Si ese es el problema, ¿cómo puedo obtener el elemento de todos los niños?
Aquí está el código:
const express = require('express'); const axios = require('axios'); const cheerio = require('cheerio'); const app = express(); async function getGigObjects(proURL) { try { const url = proURL; const { data } = await axios({ method: "GET", url: url, headers: { "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Edg/94.0.992.38" } }) let $ = cheerio.load(data) const queryDa = '#perseus-app > div > div > div.layout-row.content-row > div > div > div > div' const gigContainerData = [] $(queryDa).each((parentIdx, parentElem) => { $(parentElem).children().children().children('.text-display-7').children().each((childIdx, childElem) => { console.log($(childElem).text()) }) }) return gigContainerData } catch (err) { console.log(err) } } app.get('/home', async function (req, res) { const getGigData = await getGigObjects('https://www.fiverr.com/categories/programming-tech/wordpress-services') console.log('Inside Home Login'); res.writeHead(200, { 'Content-Type': 'application/json', }); res.end(JSON.stringify(getGigData)); }); app.listen(3001, () => { console.log('Server Listening on port 3001'); });