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ページを収集するクローラにこの機能を搭載させるケース、収集/検索できる情報が増えて面白いかも。