J'essaie de récupérer quelques informations d'une page de profil d'instagram avec nightmarejs (un dérivé de fantôme utilisant l'électron comme un navigateur).nightmarejs gratter plusieurs éléments avec querySelectorAll
Le but est d'obtenir les balises alt de toutes les images sur le profil (pour l'amour des exemples que je me concentre uniquement sur les images avant que le bouton « Afficher plus »)
var Nightmare = require('nightmare');
var nightmare = Nightmare({ show: true });
nightmare
.goto('https://www.instagram.com/ackerfestival/')
.evaluate(function() {
let array = [...document.querySelectorAll('._icyx7')];
return array.length;
})
.end()
.then(function (result) {
console.log(result);
})
.catch(function (error) {
console.error('Search failed:', error);
});
Cette exemple fonctionne, le tableau a une longueur de 12. Le navigateur d'électrons s'ouvre et se ferme, donc tout va bien. Mais si je change le retour en seulement le tableau, le navigateur d'électrons ne se ferme jamais et je n'ai pas de console.log.
Qu'est-ce que je fais mal? Je veux obtenir toutes les informations des images dans un tableau ou un objet.
merci! ça l'a fait pour moi. – tarpier
C'est probablement la meilleure solution pour la plupart des gens. Cependant, si vous devez faire beaucoup d'extractions/tests/etc sur les données, une approche totalement différente qui fonctionne bien pour moi est simplement de retourner 'return document.body.innerHTML' et ensuite du côté du noeud, instancier un jsdom et/ou objet jquery. À ce moment, interagir avec le dom virtuel est trivial. – rinogo