2017-02-28 444 views
0

我正在NodeJS中使用cheeriorequest进行webscraper,我无法从div获得特殊值。如何使用cheerio的节点从div标签获取值JJ

我会得到从这个div的 'idproduit' 值(223):

<div class="vignette_footer js-vignette_footer" idproduit="223"> 

对于这个我做:(编者)

$('.vignettes_produit li').each(function(i, element) { 

     var jsObject = { id: id++, idProduit: null}; 

     jsObject.idProduit = $(this).find('.vignette_footer).attr('idproduit'); 
}); 

但它gaving我一个undefined结果。

有谁知道我该怎么办?

+0

什么是你的代码中的'this'? – dan

+0

这是在我的代码的上下文中,我在循环@dan – rastafalow

回答

0

更新:在您的编辑之后,将$('.vignettes_produit li')更改为$('li[class="vignettes_produit"]')应该可以解决您的问题。例如:

let cheerio = require('cheerio') 

let $ = cheerio.load('<ul><li class="vignettes_produit"><div class="vignette_footer js-vignette_footer" idproduit="223">1</div></li><li class="vignettes_produit"><div class="vignette_footer js-vignette_footer" idproduit="345">2</div></li><li class="vignettes_produit"><div class="vignette_footer js-vignette_footer" idproduit="456">3</div></li></ul>') 

$('li[class="vignettes_produit"]').each(function(i, element) { 
    console.log($(this).find('.vignette_footer').attr('idproduit')) 
}) 
+0

感谢@dan您的答案。不幸的是,每个div的idproduit价值变化,我在这个div上循环。开始时我还装载了所有的身体。 – rastafalow

+0

没问题。你介意用你用来查看div的代码更新你的答案,我会再看一次吗? – dan

+0

我编辑了我的问题@dan – rastafalow