Mengikis Kandungan Dinamik dengan Node.js: Panduan Terperinci
Dalam bidang pengikisan web, kandungan dinamik memberikan cabaran yang ketara, kerana elemen ini tidak wujud dalam respons HTML awal tetapi dimuatkan secara tidak segerak. Untuk mengatasi halangan ini, kami beralih kepada penyelesaian program yang memaparkan halaman dan mendapatkan semula kandungan yang diingini.
Dalam kes ini, kami mempunyai tapak web yang memaparkan senarai elemen yang dimuatkan secara dinamik ke dalam
Kuasa PhantomJS
Untuk menangani cabaran ini, kami menggunakan PhantomJS, pelayar tanpa kepala yang boleh kami kawal secara pemrograman. Dengan memasukkan PhantomJS ke dalam kod kami, kami boleh melaksanakan JavaScript pada halaman dan menunggu kandungan dinamik dimuatkan sebelum mengikisnya menggunakan Cheerio.
Panduan Kod
Berikut ialah coretan kod dipertingkat yang menggabungkan PhantomJS:
var phantom = require('phantom'); phantom.create(function (ph) { ph.createPage(function (page) { var url = "http://www.bdtong.co.kr/index.php?c_category=C02"; page.open(url, function() { page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() { page.evaluate(function() { $('.listMain > li').each(function () { console.log($(this).find('a').attr('href')); }); }, function(){ ph.exit() }); }); }); }); });
Kod ini memulakan PhantomJS, mencipta halaman, membuka URL sasaran, menyertakan perpustakaan jQuery untuk memanipulasi kandungan halaman dan melaksanakan fungsi JavaScript untuk mengekstrak elemen yang dikehendaki. Setelah selesai, PhantomJS keluar.
Kesimpulan
Dengan memanfaatkan kuasa PhantomJS dan memasukkannya ke dalam kod mengikis kami, kami kini boleh mendapatkan semula kandungan dinamik daripada tapak web dengan mudah. Pendekatan berkuasa ini membolehkan kami menangani pelbagai jenis cabaran mengikis web dengan ketepatan dan kecekapan yang lebih tinggi.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengikis Kandungan Web Dinamik Menggunakan Node.js dan PhantomJS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!