我正在使用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)