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 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); });
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!