sbs
-
b.hatena のコメントを全回収する企み
on
2005/12/31 by
, [Perl,WWW]
被ブックマークウェブサイト管理人から見たはてなブックマークのどうしようもない使えなさ。 および はてなブックマークで、自分のブログの「被ブクマ新着RSS」が欲しいという話を見かけて、ほほう、確かに b.hatena で自分の blog についたコメントを逃さずチェックするのはなかなか難しいようぢゃのう、いやしかし LWPで GET してくれば割と簡単にでけるかもしれんのう、コメントを全部取ってきてから日時ソートすれば過去の記事の人気が再燃してもばっちぐーで捕捉できるぢゃろ、とか安易に考えて、大晦日の夜に4時間ほどかけて組んでみたんですが、あんまり実用的なものに仕上がりませんでしたの巻。しょぼーん。 やってることは、まず http://b.hatena.ne.jp/entrylist を GET して (複数ページある場合は当然全部回収して) それをパースして entry を切り出し、entry 数だけ http://b.hatena.ne.jp/entry/ を呼び出して、それぞれの中からコメントを切り出す、とまあ極悪なことをやってます。 Rauru Blog の場合は今130個ぐらい bookmark されてるんですが、テストで実行すると全部取ってくるのに1分ぐらいかかりました。CGI 化して困ってる人に使ってもらおう (そしてAdSenseをクリックしてもらおう) と企んでたんですが、こんなに時間がかかるんだとちょっち無理ぢゃなあ。hatena サーバにも負荷かけてそうだし。 cron で毎日1回実行するとかがせいぜいのところかなあ。特定サイトだけで使う場合、DB に記事毎の被ブックマーク数を入れておいて、前日と比較して増えてる分だけ取ってくる、ような感じで負荷は減らせると思います。 2006/01/29 追記: inosisibeyan の日記に そんなことをやっているせいで重いのだろう と書かれてしまったので、ちょっとだけ弁明。 私もさすがに全回収を毎日 cron で動かすのはアレだとわかっておりましたので、その後 b.hatena のコメントを逐次取得するアイデア で書いたアイデアに基づいて、誰かにブックマークされたときだけ取得に行くシステムに変更してあります。これなら 該当する entry ページを見に行くだけなので、hatena 側サーバの負荷的にも問題無しと認識しております。権利関係はー、よくわからない。