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的語法相似,相信大家比我還要熟悉!