Heim >Web-Frontend >js-Tutorial >Implementierungscode für Web Scraping mit phantomjs_javascript-Kenntnissen
Da PhantomJS ein Headless-Browser ist, der JS ausführen kann, kann er auch Dom-Knoten ausführen, was sich perfekt für das Web-Crawling eignet.
Zum Beispiel möchten wir den Inhalt von „Today in History“ auf der Webseite stapelweise crawlen. Website
Unter Berücksichtigung der Dom-Struktur müssen wir nur den Titelwert von .list li a ermitteln. Deshalb verwenden wir erweiterte Selektoren, um DOM-Fragmente zu erstellen
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' }
Danach müssen Sie nur noch den js-Code in phantomjs laufen lassen~
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(); });
Schließlich speichern wir es als Catch.js, führen es in DOS aus und geben den Inhalt in eine TXT-Datei aus (Sie können zum Schreiben auch die Datei-API von PhantomJS verwenden)