我如何使用此代码从特定页面获取所有项目,如 src、标题和 url?

How can i get all the items like src, titles and url from specific page using this code?

我一直在 node.js 的网络抓取代码中工作,使用 npm puppeteer 从页面中的每个新闻中获取 url、图像和标题,但我唯一能够做到的从第一条新闻中获取 url、图像和标题。

const puppeteer = require('puppeteer');

(async () => {
    const brower = await puppeteer.launch();
    const page = await brower.newPage();
    const url = 'https://es.cointelegraph.com/category/latest';
    await page.goto(url, { waitUntil: 'load' });

    const datos = await page.evaluate(() => Array.from(document.querySelectorAll('.categories-page__list'))
        .map( info => ({

            titulo: info.querySelector('.post-preview-item-inline__title').innerText.trim(),
            link:   info.querySelector('.post-preview-item-inline__title-link').href,
            imagen: info.querySelector('.post-preview-item-inline__figure .lazy-image__wrp img ').src
        }))
    )

    console.log(datos);

    await page.close();
    await brower.close();
})()

因为页面中只有一个.categories-page__list,而.post-preview-list-inline__item个元素很多

map 遍历了一个从 document.querySelectorAll('.categories-page__list') 返回的数组,但是这个数组只有一个元素,运行 map 闭包只有一次是正确的。

所以,替换

document.querySelectorAll('.categories-page__list')

document.querySelectorAll('.post-preview-list-inline__item')

一切正常。

在这里你可以找到 working example.

如果您需要更多帮助,请告诉我