J'essaie d'extraire des images d'une page mais la page renvoie un attr source source si cette page n'est pas complètement chargée (le chargement complet prend environ 0,5 seconde) Comment devrais-je faire une demande d'attente?Node js requests et cheerio attendent que la page se charge complètement
essayé de faire
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 = $("a[name=tt] .result_text a").attr("href")
var endurl = $('a[name=tt]').parent().parent().find(".findSection .findList .findResult .result_text a").attr("href");
request('http://www.imdb.com' + endurl, function (err, response, body) {
if (err){
console.log(err)
}else{
setInterval(function(){var $ = cheerio.load(body)}, 2000)
$(".rec_page .rec_item a img").each(function(){
var title = $(this).attr("title")
var image = $(this).attr("src")
commonMovies.push({title: title, image: image})
});
}
callback(commonMovies)
});
}
});
}
findCommonMovies("Gotham", function(common){
console.log(common)
})
Ne fonctionne pas, je pense qu'il peut être asynchrone .. –
Vous avez fait le temps d'attente de 2 secondes? Avez-vous essayé plus longtemps? C'est la seule fonction javascript (en plus de setInterval) qui vous permet de faire une pause. Vous pouvez essayer de déclarer une fonction: function cheerio() {var $ = cheerio.load (corps)} puis setTimeout (cheero, 2000); Peut-être que ce n'est pas aimer la fonction anonyme – Hunter
Je suis assez nouveau pour javascript, donc je peux me tromper, mais ce n'est pas la réponse dans la demande ('http://www.imdb.com' + endurl, fonction (err, réponse, Je pensais peut-être qu'il y avait une méthode qui attendrait –