node.jsを使ってWebページからテキストを取得

jsdomモジュール使うと、http周りの記述しなくて良いから楽だね。
レスポンスヘッダもしくは、メタ要素で指定された文字コード見てUTF-8に変換すれば
もうちょっとましになりそう。

ソース

// getText.js
var jsdom = require('jsdom');

function removeElements(list) {
  for (var i = 0, l = list.length; i < l; i++) {
    var elem = list[i];
    elem.parentNode.removeChild(elem);
  }
}

jsdom.env(process.argv[2], function(errors, window) {
  var body = window.document.body;
  removeElements(body.getElementsByTagName('script'));
  removeElements(body.getElementsByTagName('style'));

  console.log(body.textContent);
});

使い方

% node getText.js http://d.hatena.ne.jp/TakiTake/