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件まででなく、全件表示できればいい
まず例に挙げられた「痛いニュース(ノ∀`)」さんに関しては、月ごとの記事一覧があります。
例えば今月の記事一覧はこんな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
解決策にならないかもしれませんが、コメント欄が閉じているので回答欄にて失礼します。
「ブログの記事のアップロード日時」というのは、書き込んだ本人か、そのブログシステムでないと分かりません。本人でない者が行おうとするなら、そのブログが配信する RSS フィードを蓄積するしか方法はないでしょう。
bloglines は RSS を蓄積できるシステムではありますが、そこに登録する以前の記事のアップロード日時までは分かりません。
対象としているブログは livedoorブログでしょうか?
であれば、Atom APIを使って何とかなるかもしれません。
bloglinesは蓄積型だったんですね、ありがとうございます。
Atom APについても調べてみます。
まず例に挙げられた「痛いニュース(ノ∀`)」さんに関しては、月ごとの記事一覧があります。
例えば今月の記事一覧はこんな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
なるほど!月別アーカイブ見ればいいという発想がなかったです。
おかげさまで解決しました。ありがとうございます。
なるほど!月別アーカイブ見ればいいという発想がなかったです。
おかげさまで解決しました。ありがとうございます。