Cara Mendapatkan Data yang Dijana oleh JavaScript daripada Halaman Web
Mengikis web boleh mencabar apabila kandungan halaman dijana secara dinamik oleh JavaScript. Satu senario sedemikian ditemui di http://vtis.vn/index.aspx, di mana data yang dikehendaki ("Danh sách chậm") tidak tersedia sehingga butang diklik.
Penyelesaian Menggunakan PhantomJS
Untuk mendapatkan semula data ini secara pengaturcaraan, pertimbangkan untuk menggunakan PhantomJS, a pelayar WebKit tanpa kepala dengan keupayaan JavaScript. PhantomJS mendayakan skrip interaksi penyemak imbas, membolehkan anda mensimulasikan mengklik butang dan seterusnya mengakses data yang diberikan.
Contoh Skrip:
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); });
Pendekatan Alternatif : Menggunakan API
Jika boleh, meneroka sama ada halaman membuat sebarang panggilan Ajax untuk mendapatkan semula data adalah disyorkan. Jika ya, adalah mungkin untuk mengelakkan pengikisan dan sebaliknya berinteraksi dengan API untuk mendapatkan data secara langsung. Pendekatan ini biasanya lebih stabil dan boleh diselenggara daripada mengikis.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengikis Data Dijana JavaScript Dinamik daripada Tapak Web?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!