Je souhaitais vous partager une astuce probablement très utile pour scrapper : l’utilisation de nodejs grâce à postman.
Pour ceux qui connaissent pas : nodejs c’est du javascript côté serveur, très efficace pour scrapper notamment. Postman est un outil initialement conçu pour tester des API.
Toutefois, je rencontre actuellement quelques limites.
J’invoque le crew @ScraperMasters pour me confirmer ou m’infirmer mes expériences
Mais c’est là que ça devient intéressant, postman me donne un script déjà préconçu en nodejs (il y’a également tous les autres langages curl, php, shell…)
C’est génial comme fonctionnalité ca. Je pense que tu dois faire un boucle for mais c’est que ta boucle for va envoyer toutes tes requêtes sans que les précédentes ne soient terminées (je ne sais pas si c’est un pb d’envoyer 100 requêtes par secondes)
Moi je ferai un truc en mode :
let arrayMakelaar=[« id1 »,« id2 »,"id3]
function sendRequest(array){
if(array.length>0){
sendMyRequest(array[0],function(err,result){
if(err){
console.log(‹ Got an error for ›+array[0],err);
}else{
array.shift(); //on retire le premier élément du tableau
sendRequest(array)
}
})
}else{
console.log(« fin du programme »);
}
}
// reste plus qu’à définir la fonction sendMyRequest avec un callback
//lancement des hostilités
sendRequest(arrayMakelaar);
Tous les web serveurs ne traitent pas les multi-valued parameters de la même manière. A priori dans ton cas, les données pour la requête POST sont encodées en JSON, mais il ne semble pas possible d’envoyer une liste d’ID.
Il y a de fortes chances que le paramètre d’URL « makelaar » de la requête POST définisse uniquement un ID simple, et ne peut par conséquent pas être représenté par une liste en JSON.
Du coup une solution en boucle avec une itération pour chaque ID semble être la meilleure solution, comme suggéré par @boristchangang
J’ai commencé à le faire en parallèle avec nigthmare.
Mais étant noob sur nightmare ET nodejs, je galère avec les fonctions evaluate et autres promises.
Que du bonheur