work.log

エンジニアの備忘録的ブログ

PerlでRSSを解析して必要なデータを取得するの続き

投稿:2013-10-16 19:47  更新:

以下で書いたエントリーの続きです。

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() で取ると取り出し方が良くわからず。

スポンサーリンク

コメント

コメントを残す

よく読まれている記事

  • 今日
  • 週間
  • 月間