node.jsとjsdomを試してみる。

node.js上で、HTMLのdomを操作できるライブラリ"jsdom"があるみたい。


興味深いので調べてみると、GUIを持ったブラウザの様にdomを構築し要素を操作する事が出来るみたい(イメージが伝わりにくいので以下、コード参照の事)。


公式ページから頂いてきたサンプルソース、そのままだとエラーが出るのでrequire周りを修正。

var jsdom    = require("jsdom").jsdom,
    document = jsdom("<html><head></head><body>hello world</body></html>"),
    window   = document.createWindow();

console.log(window.document.innerHTML);
// output: '<html><head></head><body>hello world</body></html>'

console.log(window.innerWidth)
// output: 1024

console.log(typeof window.document.getElementsByClassName);
// outputs: function

実行結果

$ node html.js 
<html><head></head><body>hello world</body></html>
1024
function

ふと思ったのが、Webページを収集するクローラにこの機能を搭載させるケース、収集/検索できる情報が増えて面白いかも。

参考:
node.jsとjQueryでスクレイピングするウェブアプリの作り方 | さくらたんどっとびーず