Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengikis Data Dijana JavaScript Dinamik daripada Tapak Web?

Bagaimanakah Saya Boleh Mengikis Data Dijana JavaScript Dinamik daripada Tapak Web?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-03 17:33:11175semak imbas

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

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn