解決済

clip!clip!
Ads By Google

livedoorブログのページ上にあるRDF情報について教えてください。

livedoorブログで各ページのソースを開くと各記事の直前にRDFタグ
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
~中略~
</rdf:RDF>
トラックバックの相手先に表示する情報でしたでしょうか?

これをRSSリーダーみないな感じにこの情報を読み取るツールはありますでしょうか?
WEBアプリケーションでもデスクトップ・アプリケーションでもかまいませんので、ご存知の方がいらっしゃいましたらよろしくお願いいたします。

2007-07-27 00:52の質問
ブログ  RSS  XML  blog  rdf  W3C  
ブログ
ブログのかわいいポータルサイト「ヤプログ!」
www.yaplog.jp/
この質問と回答を読んで役に立った場合は「役に立つ質問」に投票してください。投票が多い質問は、役に立つ質問一覧に掲載され、より多くの人に見てもらうことができます。

回答(1)

1.

2007-08-01 10:08:29ベスト
技術がなくて作れませんでした(誰もお前みたいなくそアマプログラマに作れとは言ってない―あらそう)。



これなんかいかがでしょ?
自信度 : 自信なし 回答レベル : アドバイス

どうもありがとうございました。
単純に抽出するだけならなんとなく方針は立ったのですが、一般的なサービスを使って実現しようとするとなかなか技術レベルが追いつかないところもあって、時間がかかりそうです。

ということで一旦閉めますね。

Ads By Google

コメント(10)

2007-07-27 12:33:10

そういえばナレッジで有名なあの人から先日こういうのをいただきました。
http://n.chu.in/r/rss.cgi?url=http%3A%2F%2Fblog.li...
詳しい使い方やRSSフィードの登録方法等は一切わかりません^^;
宣伝目的と誤解されてもしょうがないですがあえて。

#3.  imq
2007-07-27 15:09:49

万年床生活者さま

どうもありがとうございます。
RDFのフォーマットでもRSSとトラックバック・ピン通知では違うのですね。
RSSリーダでは読めなかったので、NIPO N WebのトラックバックPING通知の方を使ってみました。
タイトルとリンクだけは出てきましたが、詳細の情報が出てこないみたいですね。
このリストがまたフィードで拾えたら嬉しいのですが。。。

>RSSってなんですのん
要はフィードにはRSSとATOMがあって、
RSSはRDFのフォーマットで書かれていて、
RDFとATOMはXMLというマークアップ言語で書かれている…
…ということでしょうか。
うーん、、ややこしいです。。

2007-07-27 16:28:34

>>#3
うわっ、勉強になります^^;

これ、NIPOさん本人が回答してくれるといいんだけどなぁ。 今、ナレッジにいると思うんだけど。。

#5.  imq
2007-07-27 18:44:21

>>#4
NIPOさんのサービスだったんですね。
さすがにすごいですねぇ。

質問の件はYahoo! Pipesを使ってページデータからRDFを抽出、フィードに変換できないかと奮闘中です。
これができるとRSSのプラグインを使ってブログのカスタマイズがいろいろできるんじゃないかな~と思うのですが。

2007-07-28 03:05:09

すごい。かなり高度な技にトライされてるんですねぇ^^;

ひょっとしなくても
http://knowledge.livedoor.com/27098
これでしょうか。夢のあるカスタマイズですね♪
もはや私には完全に手が出せない領域ですので
草葉の陰から生暖かく見守らせていただくことにします。


<!-- 無駄話 ここから -->

私は以前、あるブログを参考に

dc:description="記事の概要"
ここを利用してカテゴリ別・月別アーカイブで記事タイトル+見出しだけを表示するというカスタマイズをやったことがあります(私はまる1日かかったけどimqさんなら5分でできるかな)。
しかしTB送信時に、普通はそんなことする人はいないでしょうが、相手先に通知する概要を記事と違う内容に書き換えるとアーカイブのページにもそれがそのまま反映されてしまうのでやめました。

<!-- 無駄話 ここまで -->

2007-08-01 09:39:10

この埋め込み式っぽいrdfがなんなのか、
全く最近知った(要するにソースを見た)ので、
なんだかなって感じなんです。
ただいま研究中です。

ただ、抜き出すのは容易なことだと思います。
Perlなら、
その部分を抜き出して別ファイルにして
XML解析すればいいと思うのですが...
う~ん...

2007-08-01 09:42:52

kanzaki.comはやっぱり役に立つなぁ!
http://www.kanzaki.com/memo/2004/02/26-1
でもわけがわからない。
この方に聞いてみたほうが早いかもしれませんね。

2007-08-01 09:44:53

基本的にトラックバックは、
相手のサーバーにPOSTでデータを送信するので、
関係ないはずです。

#10.  imq
2007-09-10 12:43:55

JavaScriptで簡易的に取り出してみました。

function read_rdf(rdf_text){
  rdf_text.match(/dc:title=\"(.*?)\"/);
  this.title = RegExp.$1;
  rdf_text.match(/dc:identifier=\"(.*?)\"/);
  this.identifier = RegExp.$1;
  rdf_text.match(/dc:subject=\"(.*?)\"/);
  this.subject = RegExp.$1.split(',');
  rdf_text.match(/dc:description=\"(.*?)\"/);
  this.description = RegExp.$1;
  rdf_text.match(/dc:creator=\"(.*?)\"/);
  this.creator = RegExp.$1;
  rdf_text.match(/dc:date=\"(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d:\d\d:\d\d).*\"/);
  this.date = new Date(RegExp.$1 + '/' + RegExp.$2 + '/' + RegExp.$3 + ' ' + RegExp.$4);
  rdf_text.match(/rdf:about=\".*(\d\d\d\d\d\d\d\d).html\"/);
  this.index = RegExp.$1;
}

#12.  imq
2007-09-11 18:28:30

続き.

function get_rdf(tx){
  var rdf = new Array();
  var tx_rdf = tx.match(/<rdf:Description\r\n.*\r\n.*\r\n.*\r\n.*\r\n.*\r\n.*\r\n.*\r\n.*>/g);
  for(var i in tx_rdf){
    rdf[i] = new read_rdf(tx_rdf[i]);
  }
  return rdf;
}

get_rdfにページのテキストを引数に与えると
read_rdfオブジェクトが記事数分の配列で戻ってきます。
例えば↓こんな感じで取り出せるかと思います。
var rdf = new Array();
var el = document.getElementById('content');
rdf = get_rdf(el.innerHTML);
とすると、

rdf[0].title
で、一番目の記事のタイトル

rdf[1].subject[1]
で、2番目の記事のカテゴリー2

rdf[2].index
で、3番目の記事のID

rdf[3].date
は、4番目の記事の日付がDate型のオブジェクトで返されます。

トラックバック(2)

トラックバックURL: