Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich dynamische, mit JavaScript generierte Daten von einer Website extrahieren?

Wie kann ich dynamische, mit JavaScript generierte Daten von einer Website extrahieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-03 17:33:11182Durchsuche

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

So rufen Sie von JavaScript generierte Daten von einer Webseite ab

Web Scraping kann eine Herausforderung sein, wenn Seiteninhalte dynamisch von JavaScript generiert werden. Ein solches Szenario tritt unter http://vtis.vn/index.aspx auf, wo die gewünschten Daten („Danh sách chậm“) erst verfügbar sind, wenn auf eine Schaltfläche geklickt wird.

Lösung mit PhantomJS

Um diese Daten programmgesteuert abzurufen, sollten Sie PhantomJS verwenden, einen Headless-WebKit-Browser mit JavaScript-Funktionen. PhantomJS ermöglicht die Skripterstellung von Browserinteraktionen, sodass Sie das Klicken auf die Schaltfläche und den anschließenden Zugriff auf die gerenderten Daten simulieren können.

Beispielskript:

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

Alternativer Ansatz : Verwenden einer API

Wenn möglich, prüfen Sie, ob die Seite Ajax-Aufrufe zum Abrufen der Daten durchführt empfohlen. In diesem Fall ist es möglicherweise möglich, Scraping zu vermeiden und stattdessen mit einer API zu interagieren, um die Daten direkt abzurufen. Dieser Ansatz ist in der Regel stabiler und wartbarer als das Schaben.

Das obige ist der detaillierte Inhalt vonWie kann ich dynamische, mit JavaScript generierte Daten von einer Website extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn