jsdom
jsdom是一個可以使用類似dom元件操作方式來操作html text的工具,透過載入js模組,更可以直接使用js模組的相關操作方式來操作文件,對於喜愛寫爬網頁軟體的開發者來說,相當方便!
Github repository
http://github.com/tmpvar/jsdom
Installation
npm install jsdom
Sample Usage
下面是簡單的使用範例,展示如何結合jQuery做頁面上文件的操控,抓出頁面上鏈結的總數量:
var jsdom = require("jsdom") , nu = require('nodeutil') jsdom.env( //這個是欲抓取網頁的位置 "http://nodejs.org/dist/", //這個是欲載入使用的js模組 ["http://code.jquery.com/jquery.js"], //Callback function中處理request回來的資訊 function (errors, window) { //使用window物件來操作jQuery的語法,下免範例是取得頁面中所有鏈結數量 console.log( "there have been %s nodejs releases!", window.$("a").length); } );
另外,如果需要顯示鏈結的內容,也可以使用這樣的方式:
var jsdom = require("jsdom") , nu = require('nodeutil') jsdom.env( "http://recipe.ytower.com.tw/Channel/Practice/%E9%9B%BB%E9%8D%8B/2", ["http://code.jquery.com/jquery.js"], /** * 這邊是想要透過jQuery取出頁面上所有鏈結的位置 */ function (errors, window) { window.$("a").each(function(i, a){ console.log(a.href) }) } );
上面範例,原則上透過windows物件之後所操作的function就跟使用jQuery的語法相似,相信大家比我還要熟悉!