Bulknews の Miyagawa さんが RSS Feed のディレクトリサービス「Bulkfeeds」をはじめてたのですが、最近全文検索の RSS Feed を開始したのです。これがまた面白い&すばらしい。いろいろといじってみたけど、blog を対象にして記事レベルで検索ができるのが特徴でしょうか。
Bulkfeeds: Home – RSS Directory & Search
Bulkfeeds は RSS Feed のディレクトリサービスです。日本国内で Syndicate されている RSS を検索できます。2003/12/31 22:20 現在 30,119 件の RSS が登録され、354,240 件の item がインデクスされています。
試しに気になるキーワードを検索していたら、先日放送のあった M-1 のことを 話題にしている人が多くいることがわかりました。(グランプリの決定に関して納得の行かない人が多いみたい)
今この瞬間にも情報が追加更新されて行っているせいもあってか、ずーっと各情報源が気になって仕方がない状態。せっかく RSS Feed されているということもあるので、blog のサイドバー(右側のエリア)に入れてみました。ひとまず「笑い飯」の検索結果を15分に一度 RSS を取得し HTML 化してます。
ソースは以下の通り今は「笑い飯」をキーワードにしてます。(実装は “Blog Developer’s Cookbook : BlogRolling を利用して RSS 巡回先を管理” を参考にしてます)
#!/usr/bin/perl -w use strict; use LWP::Simple; use XML::RSS; use Jcode; my $keyword = Jcode->new("笑い飯")->utf8; my $encoded = $keyword; $encoded =~ s/(\W)/'%'.unpack("H2", $1)/ego; $encoded =~ tr/ /+/; my $url = sprintf "http://bulkfeeds.net/app/search2.rdf?q=%s", $encoded; my $xml = LWP::Simple::get($url); my $rss = XML::RSS->new(); $rss->parse($xml); print <<__HTML1__; <div class="sidetitle"> "$keyword" by <a href="http://bulkfeeds.net/">bulkfeeds</a> </div> <div class="side"> <ul> __HTML1__ for my $item (@{$rss->{items}}) { utf8::encode($item->{link}); utf8::encode($item->{title}); printf "<li><a href=\"%s\">%s</a></li>\n", $item->{link}, $item->{title}; } print <<__HTML2__; </ul> </div> __HTML2__
これを crontab で 15分に一度実行して HTML を作って、MovableType の Main Index でインクルードするようにテンプレートを変更して終わり。crontab のエントリーはこのような感じ。
0,15,30,45 * * * * $HOME/work/search-bulkfeeds.pl > $HOME/public_html/blog/search-bulkfeeds.html 2> /dev/null
「検索結果表示 by Bulkfeeds」への1件の返信
Bulkfeeds: Search v2.0 のベータ版公開中
Bulkfeeds Search ver 2.0 のベータ版を公開しました。