Puppeteer迭代div,然后从结果中迭代子元素 标题1

问题描述 投票:0回答:1

我想从HTML返回一个对象,如下所示:

HTML

<div id="collection">
  <div class="div">
    <h1 class="title">Title 1</h1>
    <ul class="list">
      <li>list item 1</li>
      <li>list item 2</li>
      <li>list item 3</li>
    </ul>
  </div>
  <div class="div">
    <h1 class="title">Title 2</h1>
    <ul class="list">
      <li>list item 1a</li>
      <li>list item 2a</li>
      <li>list item 3a</li>
      <li>list item 4a</li>
    </ul>
  </div>
  <div class="div">
    <h1 class="title">Title 3</h1>
  </div>
</div>

所需结果:

{
  title: "Title 1",
  list:{
    item: "list item 1",
    item: "list item 2",
    item: "list item 3"
  }
},
{
  title: "Title 2",
  list:{
    item: "list item 1a",
    item: "list item 2a",
    item: "list item 3a",
    item: "list item 4a"
  }
},
{
  title: "Title 3",
  list:{}
}

到目前为止,我有:

const result = await page.$$eval('div.div, (divs) => divs.map((div) => {
   return {
      title: div.querySelector('.title').innerText,
   }
}));
console.log(result) 

我不确定如何使用page。$$ eval来迭代另一个元素;在这种情况下ul。任何帮助,将不胜感激。

谢谢

javascript arrays puppeteer
1个回答
0
投票

我设置阵列的方式将采用以下格式:

© www.soinside.com 2019 - 2024. All rights reserved.