编程语言
首页 > 编程语言> > javascript-如何使用cheerio捕获具有不同类的元素?

javascript-如何使用cheerio捕获具有不同类的元素?

作者:互联网

我正在使用node和cheerio抓取bing搜索结果.我需要从两个具有不同ID的列表中获取所有href值.

>如何将两个列表中的所有标签合为一体
声明?我试过了,但是没有用.
>从第一个列表中,我不希望将li标签与该类一起使用
“ b_pag”.如何编写选择器?如非条件或
的东西.

$(“ a”,[“ #b_content”,“ #b_context”]).each(((index,element)=> {
     const href = $(element).attr(“ href”);
     links.push(href);
});

请参阅随附的html.html屏幕截图

Update2:我想忽略整个标签,但是我在这里和其他地方找到的解决方案都忽略了该标签.它下面的任何其他>标记(具有任何其他类别或没有类别)不会被忽略.

我找到了解决方法.我可以抓住具有其他类名的>标记.签出the html here.我正在考虑为前四个类使用四个不同的选择器.像$(.b_algo)或$(.b_ans).但是,如何获取具有多个关联类的其他两个>标记?我无法从cheerio docs中获得清晰的主意.希望你们对我足够清楚!像$(.b_ans b_mop)之类的东西不起作用. $(“ li [class = b_ans b_mop”)也没有.

解决方法:

尝试这个,

$("#b_content", "#b_context").each(function(i, elem) {
        array[i] = {
             a: $(this).find("a").attr("href")
         };
      });`

要选择除类“ b_pag”之外的“ li”,请使用li:not(.b_pag)

标签:dom,node-js,web-scraping,cheerio,javascript
来源: https://codeday.me/bug/20191024/1923084.html