Twitterの/homeのcontainerの中身のみ30秒に一度更新する

2008/03/09追記

新バージョン作りました。

本文

Twitterの/homeから欲しい情報だけ取り出す布石 - 文殊堂の続き。


jQueryを読み込ませた上で↓を実行する。

setInterval(function(){
	var $ = jQuery;
	$.get('http://twitter.com/home',function(data){
		var result = /<div\s+id="container"[^<>]*>/.exec(data);
		var start = result.index + result[0].length;
		var end = data.search(/<!--\s+\/container\s+-->/);
		var container = data.slice(start,end);
		
		$('#container').get()[0].innerHTML = container;
	});
},30*1000);

innerHTMLの操作ではscript要素は評価されないというのを、
見たことはあったのですが、頭に入ってなかったみたいです。
script要素を評価させるためにがんばってるjQueryを抜きにしてinnerHTMLの操作を行えば、
scriptタグの除去はまったく必要ありません。


今回は内容の更新に使用しましたが、適当なdivに突っ込んでやれば、
jQueryで好きなようにスクレイピングできます。