Oleh kerana phantomjs ialah penyemak imbas tanpa kepala yang boleh menjalankan js, ia juga boleh menjalankan nod dom, yang sesuai untuk merangkak web.
Sebagai contoh, kami ingin merangkak secara berkelompok kandungan "Hari Ini dalam Sejarah" pada halaman web. Laman web
Memerhatikan struktur dom, kita hanya perlu mendapatkan nilai tajuk .list li a. Jadi kami menggunakan pemilih lanjutan untuk membina serpihan DOM
var d= '' var c = document.querySelectorAll('.list li a') var l = c.length; for(var i =0;i<l;i++){ d=d+c[i].title+'\n' }
Selepas itu, anda hanya perlu membiarkan kod js dijalankan dalam phantomjs~
var page = require('webpage').create(); page.open('http://www.todayonhistory.com/', function (status) { //打开页面 if (status !== 'success') { console.log('FAIL to load the address'); } else { console.log(page.evaluate(function () { var d= '' var c = document.querySelectorAll('.list li a') var l = c.length; for(var i =0;i<l;i++){ d=d+c[i].title+'\n' } return d })) } phantom.exit(); });
Akhirnya kami menyimpannya sebagai catch.js, melaksanakannya dalam dos dan mengeluarkan kandungan ke fail txt (anda juga boleh menggunakan api fail phantomjs untuk menulis)