Как я могу получить все элементы, такие как src, title и url с определенной страницы, используя этот код? - PullRequest
0 голосов
/ 07 мая 2019

Я работал в веб-коде для поиска в файле node.js, используя кукловода npm, чтобы получить 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();
})()

1 Ответ

0 голосов
/ 07 мая 2019

Поскольку на странице есть только один .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')

и все работает.

Здесь вы можете найти рабочий пример .

Дайте мне знать, если вам нужна дополнительная помощь ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...