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

results matching ""

    No results matching ""