首页 > 解决方案 > 获取元素数组并使用 Puppeteer 导航子元素

问题描述

我需要获得一个具有相同类 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'); 但结果是一个不允许您导航到儿童的句柄。泰来帮忙。

标签: javascripthtmlpuppeteer

解决方案


尝试在里面做所有的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(); }

推荐阅读