以下で書いたエントリーの続きです。
RSS からでも結構色々な情報が取れるのですが、一部取得の仕方がわからないものもあったりしたので調べてみました。
一部、どうしても取り方がわからないのがあるのですが、それはさておきとりあえずはソースから。
#!/usr/bin/perl use strict; use warnings; use XML::FeedPP; my $rss = 'https://worklog.be/feed'; my $feed = XML::FeedPP->new($rss); print "blog name : " . $feed->title() . "\n"; print "blog desc : " . $feed->description() . "\n"; print "blog url : " . $feed->link() . "\n"; print "blog lang : " . $feed->language() . "\n"; print "generator : " . $feed->get("generator") . "\n"; foreach ($feed->get_item()) { print "entry date : " . $_->pubDate() . "\n"; print "entry title : " . $_->title() . "\n"; print "entry desc : " . $_->description() . "\n"; print "entry url : " . $_->link() . "\n"; print "entry author: " . $_->get("dc:creator") . "\n"; } exit;
実行結果はこんな感じです。
blog name : work.log blog desc : 元エンジニアの備忘録的ブログ blog url : https://worklog.be blog lang : ja generator : http://wordpress.org/?v=3.6.1 entry date : 2013-10-11T12:09:09+00:00 entry title : jQueryで後から追加した要素でもクリックイベントを取得するメモ entry desc : jQuery の .on でクリックイベントを取得するメモです。 以下で...(ry entry url : https://worklog.be/archives/2635 entry author: miura
RSS の「dc:creator」とか「content:encoded」は get->(“content:encoded”) のように取るらしい。
ブログ等によってマチマチではありますが「content:encoded」の中に欲しいデータがあったりしたのでずっと気になってました。
ただ、「category」が複数の場合の取り方がイマイチ理解出来てないのでこれは後で調べる。これも get() で取れなくはないけど一つだけだし、category() で取ると取り出し方が良くわからず。