javascriptnode.jsweb-scrapingcheerio

How to get a value from a div tag using cheerio's nodeJS


I'm making a webscraper using cheerio and request in NodeJS and I can't get a special value from a div.

I would get the 'idproduit' value (223) from this div :

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

For this I'm doing:

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

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

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

But it's gaving me an undefined result.

Does anyone know how I have to do ?


Solution

  • Changing $('.vignettes_produit li') to $('li[class="vignettes_produit"]') should solve your issue. For example:

    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'))
    })