Maison > interface Web > js tutoriel > Comment puis-je récupérer du contenu Web dynamique à l'aide de Node.js et PhantomJS ?

Comment puis-je récupérer du contenu Web dynamique à l'aide de Node.js et PhantomJS ?

Linda Hamilton
Libérer: 2024-12-01 01:07:10
original
604 Les gens l'ont consulté

How Can I Scrape Dynamic Web Content Using Node.js and PhantomJS?

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

    étiqueter. En utilisant Cheerio, notre première tentative n'a pas réussi à récupérer ces éléments car ils n'étaient pas présents dans la réponse HTML initiale.

    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()
            });
          });
        });
      });
    });
    Copier après la connexion

    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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal