2017-10-05 3 views
1

J'ai donc un problème où je ne peux pas obtenir le lien vers un film que je veux gratter pour la section "Les gens ont aussi aimé" où il vous montre des films qui sont similaires. Je ne peux pas trop cette page sur certains films mais parce qu'il ya une section de caractèresNoeud js cheerio parsing html

function findCommonMovies(movie, callback){ 

    request('http://www.imdb.com/find?ref_=nv_sr_fn&q='+ movie +'&s=all', function (error, response, body) { 
     if (error){ 
      return 
     }else{ 
      var $ = cheerio.load(body); 
      var title = $(".result_text").first().text().split("(")[0].split(" ").join('') 
      var commonMovies = [] 
      var endurl = $(".findSection .findList .findResult .result_text a").attr("href") 
      var test 
      request('http://www.imdb.com' + endurl, function (err, response, body) { 

       if (err){ 
        console.log(err) 
       }else{ 
        var $ = cheerio.load(body); 
        $(".rec_page .rec_item a img").each(function(){ 
        var title = $(this).attr("title") 
        commonMovies.push(title) 
        }); 
       } 
       callback(commonMovies) 
      }); 
     } 
    }); 

} 
findCommonMovies("Lucifer", function(common){ 
    console.log(common) 
}) 

va imprimer un tableau vide

findCommonMovies("Lucifer", function(common){ 
    console.log(common) 
}) 

va imprimer un tableau avec des données à l'intérieur

findCommonMovies("Gotham", function(common){ 
    console.log(common) 
}) 

Lucifer

Gotham

http://www.imdb.com/find?ref_=nv_sr_fn&q=Lucifer&s=all

Répondre

1

Il y a aa tag comme ceci avec le nom « tt » <a name="tt"></a> Vous pouvez utiliser ce sélecteur pour obtenir la section désirée tag

var endurl = $('a[name=tt]').parent().parent().find(".findSection .findList .findResult .result_text a").attr("href"); 
+0

Je ne comprends pas comment j'utiliser pour get to my tag –

+0

Vérifiez ma dernière modification et remplacez votre variable endurl par la nouvelle. –