Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用cheerio获取具有不同类的元素?_Javascript_Node.js_Dom_Web Scraping_Cheerio - Fatal编程技术网

Javascript 如何使用cheerio获取具有不同类的元素?

Javascript 如何使用cheerio获取具有不同类的元素?,javascript,node.js,dom,web-scraping,cheerio,Javascript,Node.js,Dom,Web Scraping,Cheerio,我正在使用node和cheerio抓取bing搜索结果。我需要从两个具有不同ID的列表中获取所有href值 如何在一个列表中获取这两个列表中的所有标记 陈述我试过了,但没用。 从第一个列表中,我不希望li标记与类一起使用 布帕。如何为它编写选择器?不象一种状态或状态 某物 $a,[b_内容,b_上下文].eachindex,element=>{const href=$element.attrref;links.pushhref;} 请参阅所附的html屏幕截图 更新2:我本想忽略整个标记,但我在

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

如何在一个列表中获取这两个列表中的所有标记 陈述我试过了,但没用。 从第一个列表中,我不希望li标记与类一起使用 布帕。如何为它编写选择器?不象一种状态或状态 某物 $a,[b_内容,b_上下文].eachindex,element=>{const href=$element.attrref;links.pushhref;}

请参阅所附的html屏幕截图

更新2:我本想忽略整个标记,但我在这里和其他地方找到的解决方案只忽略了该标记。它下面的任何其他标记(具有任何其他类或没有类)都不会被忽略

我找到了绕过它的方法。我可以抓取具有其他类名的标记。退房我正在考虑在前四节课中使用四种不同的选择器。例如$.b_algo或$.b_ans。但是我如何获取与之关联的多个类的其他两个标记呢?我无法从这张照片中得到一个清晰的想法。希望我对你们足够清楚!像$b_和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

尝试此选项

$.b_content li[class!='b_pag'].finda.eachindex,element=>{ 常量href=$element.attrref; console.loghref; })


如果要忽略该类,请使用属性选择器和相应的标记,如li[class!='b_pag']

尝试改用Bing Web搜索API:


这是获取Bing搜索结果的合法且更好的方法。如果您没有太多搜索要做,您可以注册此API的免费层。您还可以使用加入Azure时收到的Azure免费积分。

所有li是否都持有a是的所有li标记都有a标记以及其他标记我看到了您的代码。它在o下获得所有a标记l以b_内容为类。我想忽略以b_pag为类的li标记。查看屏幕截图中的最后一个li。这就是我想忽略的。所有其他li标记都是必需的。请查看此代码$b_内容,b_上下文将在b_上下文下找到b_内容,它不存在,因此我得到一个空结果。li:不。b_pag是我一直在寻找的你能告诉我你会在代码中写在哪里吗?我能抓到你现在的,$b_结果。findli:not.b_pag.eachi,el=>{//something};我找到了解决这个问题的方法。不过我还有另一个疑问。我怎么能抓住这样一个元素-?这是否意味着这个元素与3个类a、b和c相关联?是的!类似于一些引导类..这个问题的答案以前已经回答过了,看看这个。这个!=确实有效,而李:不像Dipesh Lohani说的那样e也忽略了我需要忽略整个感谢兄弟。我一定会检查它: