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  : Drive Network エンジニアのブログ
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() で取ると取り出し方が良くわからず。

おすすめのVPSサーバ

  • OSが選べる
  • VPS同士でLANが組める
  • 複数台構成向き

このブログで使っています。

  • 転送量が多いサービスに
  • 借りてるのは3年間一度もdown無し!

よく見られている記事

  • 本日
  • 週間
  • 月間