Scraping de contenu dynamique avec Node.js : un guide détaillé
Dans le domaine du web scraping, le contenu dynamique présente un défi important, car ces éléments n'existent pas dans la réponse HTML initiale mais sont chargés de manière asynchrone. Pour surmonter cet obstacle, nous nous tournons vers des solutions programmatiques qui restituent la page et récupèrent le contenu souhaité.
Dans ce cas, nous avons un site Web présentant une liste d'éléments qui sont chargés dynamiquement dans un
La puissance de PhantomJS
Pour relever ce défi, nous utilisez PhantomJS, un navigateur sans tête que nous pouvons contrôler par programme. En incorporant PhantomJS dans notre code, nous pouvons exécuter JavaScript sur la page et attendre que le contenu dynamique se charge avant de le gratter à l'aide de Cheerio.
Procédure pas à pas du code
Voici une extrait de code amélioré qui intègre PhantomJS :
var phantom = require('phantom'); phantom.create(function (ph) { ph.createPage(function (page) { var url = "http://www.bdtong.co.kr/index.php?c_category=C02"; page.open(url, function() { page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() { page.evaluate(function() { $('.listMain > li').each(function () { console.log($(this).find('a').attr('href')); }); }, function(){ ph.exit() }); }); }); }); });
Ce code initialise PhantomJS, crée une page, ouvre le URL cible, inclut la bibliothèque jQuery pour manipuler le contenu de la page et exécute une fonction JavaScript pour extraire les éléments souhaités. Une fois terminé, PhantomJS se ferme.
Conclusion
En tirant parti de la puissance de PhantomJS et en l'intégrant dans notre code de scraping, nous pouvons désormais récupérer sans effort le contenu dynamique des sites Web. Cette approche puissante nous permet de relever une grande variété de défis de web scraping avec une précision et une efficacité accrues.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!