木偶获得带有childNodes的html元素

时间:2020-01-26 10:09:43

标签: javascript html node.js web-scraping puppeteer

我有一个html页面,其中有些元素像树一样放置(类似于category-> subcategory-> element)。

<section class="category">
 <div class="name"></div>
 <div class="description"></div>
 <div class="subcategory">
     <div class="name"></div><div class="description"></div>
     <div class="element">
         <div class="name"></div>
     </div>
 </div>
 <div class="subcategory">
     <div class="name"></div>
     <div class="description"></div>
     <div class="element">
         <div class="name"></div>
     </div>
 </div>
</section>

我想获取元素并将其放入具有相同结构的对象类中:

export class category {
constructor(_name, _description){
    this.name = _name;
    this.description = _description;
    this.subcategories = []       
 }
}

export class subcategory{
constructor(_name, _description){
    this.name = _name;
    this.description = _description;   
    this.elements = []    
  }
}

export class element{
constructor(_name){
    this.name = _name
  }
}

我已经尝试过page。$$('section'),但是我只有第一级(section)的html元素,而没有孩子。 如果我执行page。$$('subcategory'),我将无法维护主要的详细结构,因为我没有html的“ category”和“ subcategory”链接。 我必须获得具有父子风格的事物,因为我必须将它们放入该对象类中。

我不知道是否可以,但是我想这样做:

  • 获取第一级元素
  • 获取第一级e的childNodes,然后获取第二级元素
  • 获取第二级e的childNodes,然后获取第三级元素

我尝试过的所有方法都无效。

0 个答案:

没有答案