RSSフィードURLの取得(Feed::Find)
ここでは、Feed::Findモジュールを使ってRSS/RDFのURL(URI)を取得する方法を説明します。
フィード取得サンプル
以下に単純なRSSフィードURL取得サンプルを示します。
#!/usr/bin/perl
use Feed::Find;
# ここを変更して下さい
@list = Feed::Find->find('http://www.geekpage.jp/');
foreach $tmp (@list) {
print $tmp;
print "\n";
}
exit;
上記サンプルでは、Feed::Findのfindを使ってHTTPでWebページを取得し、中に記述されているフィードへのURLを取得しています。 Feed::Find->findの返り値は、発見したフィードURLのリストです。
Feed::Findは、最初にHTML文書内の<HEAD>部分から<LINK>を探します。 <LINK>のContent-Typeが、application/x.atom+xml、application/atom+xml、application/xml、text/xml、application/rss+xml、application/rdf+xmlであるものはフィードであるとみなされます。
<HEAD>部分で一つも要素が発見できなかった場合、Feed::Find->findはHTML本文を検索します。 本文中で、<A>タグが示すリンク先の拡張子が .rss、.xml、.rdf になっているものがフィードとみなされます。 (ただし、これは<HEAD>に何もない時だけ発動するようです)