获取一系列元素并使用 Puppeteer 导航孩子

Get an array of elements and navigate childrens with Puppeteer

我需要得到一个具有相同class ID的元素数组,即class = "col-lg-3 col-md-4 col-xs-4 mb-30" 在我的例子中。然后从这个数组的每个元素中获取各种数据,例如图像。这是例如网站:https://altadefinizione.sale/?s=matrix 我试过 const feedHandle = await page.$$('.col-lg-3.col-md-4.col-xs-4.mb-30'); 但结果是一个不允许您导航到 children 的句柄。 谢谢你的帮助。

尽量把DOM处理全部放在page.evaluate()里面,最简单的方法:

import puppeteer from 'puppeteer';

const browser = await puppeteer.launch();

try {
  const [page] = await browser.pages();

  await page.goto('https://altadefinizione.sale/?s=matrix');

  const data = await page.evaluate(() => {
    const divs = document.querySelectorAll('.col-lg-3.col-md-4.col-xs-4.mb-30');
    const imgSources = Array.from(divs, div => div.querySelector('img').src);
    return imgSources;
  });
  console.log(data);
} catch (err) { console.error(err); } finally { await browser.close(); }