首頁 >後端開發 >php教程 >如何從網站抓取動態 JavaScript 產生的資料?

如何從網站抓取動態 JavaScript 產生的資料?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-03 17:33:11179瀏覽

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

如何從網頁擷取 JavaScript 產生的資料

當頁面內容由 JavaScript 動態產生時,網頁抓取可能會很困難。 http://vtis.vn/index.aspx 遇到了這樣的場景,其中所需的資料(“Danh sách chậm”)只有在單擊按鈕後才可用。

使用 PhantomJS 的解決方案

要以程式設計方式檢索此數據,請考慮使用 PhantomJS,這是一個帶有 JavaScript 的無頭 WebKit 瀏覽器能力。 PhantomJS 支援瀏覽器互動腳本,可讓您模擬點擊按鈕並隨後存取渲染的資料。

範例腳本:

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

替代方法:使用API​​

如果可能,探索頁面是否做

如果可能,探索頁面是否做了任何建議使用Ajax 呼叫來檢索資料。如果是這樣,就有可能避免抓取,而是與 API 互動以直接取得資料。這種方法通常比抓取更穩定且可維護。

以上是如何從網站抓取動態 JavaScript 產生的資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn