April 17, 2003

RSSで遊ぶ

[ インターネット ]

MovableTypeでもRSSを出力していることだし、何か面白いことができないかなあと思って、とりあえずRSSのパーシングをやってみる。ここを参考にPerlでLWP::SimpleとXML::RSSを使ってざっくりと。

スラッシュドット ジャパンhttp://slashdot.jp/slashdot.rdfでRSSを公開してるので、それを元ネタにやってみた。

#!/usr/local/bin/perl

use strict;
use XML::RSS;
use LWP::Simple;
use Jcode;

my $url = shift @ARGV;
my $parser = new XML::RSS;

eval {
$parser->parse(get($url));
}; if ($@) {
die "EXCEPTION: $@";
}

foreach my $item (@{$parser->{items}}) {

print "タイトル: ", euc($item->{title}), "(",
euc($item->{'http://slashcode.com/rss/1.0/modules/Slash/'}->{comments}), ")\n",
"リンク: ", euc($item->{link}), "\n",
"書いた人: " , euc($item->{dc}->{creator}), "\n";
}

sub euc {
my $str = shift;

return Jcode->new($str)->euc;
}

RSS拡張モジュールの名前空間や、それ以外の名前空間に属するエレメントの取得方法の仕方でちょっと詰まったが、perldoc を見たらきっちり書いてあった。あと、EUCで記述されたRSSをパーシングさせるとeuc-jp.encがねーぞと怒られるので、これもmiyagawaさんのとこから拝借。感謝。

で、この結果を何にどう応用するかまでは考えていなかったという罠。MovableTypeのサイドメニューに載せるかなと思ったが、プラグインの作り方がさっぱりなのでとりあえず保留。ちなむと、そういうプラグインも既にあるみたい。

Posted by naoya at April 17, 2003 12:18 AM | トラックバック (0)  b_entry.gif
トラックバック [0件]
TrackBack URL: http://mt.bloghackers.net/mt/suck-tbspams.cgi/24
コメント [0件]