Maison > développement back-end > tutoriel php > Comment puis-je récupérer les données dynamiques générées par JavaScript à partir d'un site Web ?

Comment puis-je récupérer les données dynamiques générées par JavaScript à partir d'un site Web ?

Mary-Kate Olsen
Libérer: 2024-12-03 17:33:11
original
294 Les gens l'ont consulté

How Can I Scrape Dynamic JavaScript-Generated Data from a Website?

Comment récupérer des données générées par JavaScript à partir d'une page Web

Le Web scraping peut être difficile lorsque le contenu d'une page est généré dynamiquement par JavaScript. Un tel scénario est rencontré sur http://vtis.vn/index.aspx, où les données souhaitées ("Danh sách chậm") ne sont pas disponibles tant qu'un bouton n'est pas cliqué.

Solution utilisant PhantomJS

Pour récupérer ces données par programme, envisagez d'utiliser PhantomJS, un navigateur WebKit sans tête doté de fonctionnalités JavaScript. PhantomJS permet la création de scripts pour les interactions du navigateur, vous permettant de simuler un clic sur le bouton et d'accéder ensuite aux données rendues.

Exemple de script :

var page = require('webpage').create();

page.open('http://vtis.vn/index.aspx', function() {
  page.evaluate(function() {
    // Click the "Danh sách chậm" button
    document.querySelector('button[onclick="DanhSachCham();"]').click();
  });

  // Wait for the data to load
  setTimeout(function() {
    var data = page.evaluate(function() {
      // Extract the data from the page
      return document.querySelector('div[id="DivDanhSachTTHT"] tbody').innerHTML;
    });
    console.log(data);
  }, 1000);
});
Copier après la connexion

Approche alternative : Utilisation d'une API

Si possible, il est recommandé de rechercher si la page effectue des appels Ajax pour récupérer les données. Si tel est le cas, il peut être possible d’éviter le scraping et d’interagir avec une API pour obtenir directement les données. Cette approche est généralement plus stable et maintenable que le scraping.

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!

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