カテゴリー
technology

検索結果表示 by Bulkfeeds

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件の返信

コメントは受け付けていません。