如何透過JavaScript 抓取動態產生的網頁資料
雖然網頁抓取是從網站擷取資料的常用技術,但它變得更當使用者互動後由JavaScript 產生資料時,這是一項挑戰。在這種情況下,資料最初在 HTML 來源中不可用,需要額外的步驟才能存取它。
利用 PhantomJS 進行動態資料抓取
動態抓取此類資料產生數據,可以使用 PhantomJS 工具。 PhantomJS 模仿無頭 Web 瀏覽器,透過 JavaScript API 與網頁互動。透過編寫 PhantomJS 腳本,您可以模擬使用者互動並捕獲所需的資料。
以下是使用PhantomJS 從提供的網站提取所需數據的代碼片段:
const page = require('webpage').create(); page.open('http://vtis.vn/index.aspx', function () { page.evaluate(function () { // Simulate clicking the "Danh sách chậm" button document.querySelector('.IconMenuColumn').querySelector('a').click() }); // Wait for data to load setTimeout(function () { // Extract the data let data = page.content; }, 1000); });
替代方案方法:API 集成
雖然抓取可能有效,但探索替代方案也很重要選項。如果您要抓取的網站提供 API,那麼使用它會比螢幕抓取更有效率且更易於維護。嘗試聯絡網站所有者,詢問是否有可用的 API。
以上是如何使用 JavaScript 和 PhantomJS 抓取動態網站資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!