Я использую Puppeteer, чтобы очистить этот сайт . Я хочу l oop над каждой цитатой и создать массив объектов с 3 значениями каждое: цитата, по, категории. Мне трудно вытащить текст span из каждого div. Вот что у меня есть:
const quotes = await page.evaluate(() => {
const grabFromDiv = (div, classname) => div
.querySelector(`div.${classname}`)
.innerText
.trim()
//our selectors
const quote_selector = 'div.quote'
//store our data in an array of objects
const data = []
//get all quotes
const quoteDivs = document.querySelectorAll(quote_selector)
//loop over each quote block, creating objects
for (const span of quoteDivs) {
data.push({
quote: grabFromDiv(span, 'text'),
by: grabFromDiv(small, 'author'),
category: grabFromDiv(a, 'tag'),
})
}
//send the data back into the quotes variable
return data
})
На данный момент он возвращает массив этих объектов:
{
"quote": null,
"by": null,
"category": null
}