ブログの過去記事のアップロード日時を全て知りたいです。


RSSを使って日時を確認しようとしたのですが、
下記を取得すると
http://blog.livedoor.jp/dqnplus/index.rdf
過去15件までしか表示されませんでした


使えそうなRSSリーダーで検証してみたのですが、
データを取得できなかったりして困っています

■GoogleAPI■
google.feeds.FeedControlクラスを使って取得しようとしましたが、
やっぱり過去15件までしか取得できないようでした。(違ってたらごめんなさい)


■Googleリーダー■
http://www.google.co.jp/reader/
・「すべてのアイテム」を選んで、スクロールしていくと過去全て(と思われる)の更新記録を閲覧できる。
・ソースを見てもURLや日時が表示されない

解決すれば使えそうな点
・ソースを取得する。⇒手入力で地道に入力すればできますが、URLと日時を抽出したいです。


■bloglines■
http://www.bloglines.com/
・AllItemを選択すれば、過去100個までの記事を取得できました。
・ソースを見ると、URLと日時がクラスで囲まれているのでプログラム組めば自動化できそう。

解決すれば使えそうな点
100件まででなく、全件表示できればいい

回答の条件
  • 1人3回まで
  • 登録:2009/04/11 16:53:26
  • 終了:2009/04/15 22:53:39

ベストアンサー

id:sakuragaoka No.2

桜ヶ丘回答回数17ベストアンサー獲得回数32009/04/13 19:05:42

ポイント100pt

まず例に挙げられた「痛いニュース(ノ∀`)」さんに関しては、月ごとの記事一覧があります。


例えば今月の記事一覧はこんなURLです。

http://blog.livedoor.jp/dqnplus/archives/2009-04.html

先月はこうです。

http://blog.livedoor.jp/dqnplus/archives/2009-04.html

これを、一番古い記事の月まで見て行きます。


そうして全部、日付が書かれてる所を見て行けば分かります。

もちろん、やるのは人間ではありません。


# wgetとPerlのインストールされた環境をご用意下さい


#!/usr/bin/perl

#--- main
$y = 2009;
while($y>=2004){
        $m = 12;
        while($m>=1){
                getDqn($y, $m);
                $m--;
        }
        $y--;
}
exit;

sub getDqn{
        sleep 1;
        my $command = sprintf("wget -q -O - http://blog.livedoor.jp/dqnplus/archives/%04d-%02d.html", $y, $m);
        open(my $fh, "$command |");
        while(<$fh>){
                print "TITLE: $1\n"   if(/dc:title="([^"]+)"/);
                print "URL:   $1\n"   if(/dc:identifier="([^"]+)"/);
                print "DATE:  $1\n\n" if(/dc:date="([^"]+)"/);
        }
        close($fh);
}

これを実行した結果がこうです。

TITLE: TBS社員、「弥栄」で麻生首相を罵倒→「いやさかえ」であってると指摘されても謝罪せず

URL: http://blog.livedoor.jp/dqnplus/archives/1248832.html

DATE: 2009-04-12T23:54:49+09:00

 

(中略)

 

TITLE: 「おれの嫁になれ」と104番に2617回電話した男(63)

URL: http://blog.livedoor.jp/dqnplus/archives/250958.html

DATE: 2005-12-28T18:24:17+09:00

 

TITLE: 【映画】「シリアナ」に出演の俳優、描かれ方に満足

URL: http://blog.livedoor.jp/dqnplus/archives/249380.html

DATE: 2005-12-28T15:04:33+09:00

 

TITLE: 相互リンク集

URL: http://blog.livedoor.jp/dqnplus/archives/1170385.html

DATE: 2004-12-31T23:59:25+09:00

id:gizuma

なるほど!月別アーカイブ見ればいいという発想がなかったです。

おかげさまで解決しました。ありがとうございます。

2009/04/15 22:50:01

その他の回答(1件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332009/04/11 19:56:25

ポイント20pt

解決策にならないかもしれませんが、コメント欄が閉じているので回答欄にて失礼します。


「ブログの記事のアップロード日時」というのは、書き込んだ本人か、そのブログシステムでないと分かりません。本人でない者が行おうとするなら、そのブログが配信する RSS フィードを蓄積するしか方法はないでしょう。

bloglines は RSS を蓄積できるシステムではありますが、そこに登録する以前の記事のアップロード日時までは分かりません。


対象としているブログは livedoorブログでしょうか?

であれば、Atom APIを使って何とかなるかもしれません。

id:gizuma

bloglinesは蓄積型だったんですね、ありがとうございます。

Atom APについても調べてみます。

2009/04/15 22:47:05
id:sakuragaoka No.2

桜ヶ丘回答回数17ベストアンサー獲得回数32009/04/13 19:05:42ここでベストアンサー

ポイント100pt

まず例に挙げられた「痛いニュース(ノ∀`)」さんに関しては、月ごとの記事一覧があります。


例えば今月の記事一覧はこんなURLです。

http://blog.livedoor.jp/dqnplus/archives/2009-04.html

先月はこうです。

http://blog.livedoor.jp/dqnplus/archives/2009-04.html

これを、一番古い記事の月まで見て行きます。


そうして全部、日付が書かれてる所を見て行けば分かります。

もちろん、やるのは人間ではありません。


# wgetとPerlのインストールされた環境をご用意下さい


#!/usr/bin/perl

#--- main
$y = 2009;
while($y>=2004){
        $m = 12;
        while($m>=1){
                getDqn($y, $m);
                $m--;
        }
        $y--;
}
exit;

sub getDqn{
        sleep 1;
        my $command = sprintf("wget -q -O - http://blog.livedoor.jp/dqnplus/archives/%04d-%02d.html", $y, $m);
        open(my $fh, "$command |");
        while(<$fh>){
                print "TITLE: $1\n"   if(/dc:title="([^"]+)"/);
                print "URL:   $1\n"   if(/dc:identifier="([^"]+)"/);
                print "DATE:  $1\n\n" if(/dc:date="([^"]+)"/);
        }
        close($fh);
}

これを実行した結果がこうです。

TITLE: TBS社員、「弥栄」で麻生首相を罵倒→「いやさかえ」であってると指摘されても謝罪せず

URL: http://blog.livedoor.jp/dqnplus/archives/1248832.html

DATE: 2009-04-12T23:54:49+09:00

 

(中略)

 

TITLE: 「おれの嫁になれ」と104番に2617回電話した男(63)

URL: http://blog.livedoor.jp/dqnplus/archives/250958.html

DATE: 2005-12-28T18:24:17+09:00

 

TITLE: 【映画】「シリアナ」に出演の俳優、描かれ方に満足

URL: http://blog.livedoor.jp/dqnplus/archives/249380.html

DATE: 2005-12-28T15:04:33+09:00

 

TITLE: 相互リンク集

URL: http://blog.livedoor.jp/dqnplus/archives/1170385.html

DATE: 2004-12-31T23:59:25+09:00

id:gizuma

なるほど!月別アーカイブ見ればいいという発想がなかったです。

おかげさまで解決しました。ありがとうございます。

2009/04/15 22:50:01
  • id:sakuragaoka
    >先月はこうです。
    >http://blog.livedoor.jp/dqnplus/archives/2009-04.html

    http://blog.livedoor.jp/dqnplus/archives/2009-03.html
    の間違いでした。すみません。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません