ネットサービスの開発に役立ちそうな話題を中心にお届けします。
F.Ko-Jiの「一秒後は未来」 > プログラミング > RSSフィードのオートディスカバリー(Auto Discovery)を探す方針
2009年01月13日 01:10
1122日前に投稿

RSSフィードのオートディスカバリー(Auto Discovery)を探す方針

  • ... PV
  • このエントリーをはてなブックマークに追加

スポンサード リンク

Auto Discoveryはheadタグ内にlinkタグで指定されますが、すべてのlinkタグがオートディスカバリーとは限らないため、linkタグの中から適切なタグを見つける必要があります。

<link rel="alternate" type="application/rss+xml"
 title="F.Ko-Jiの「一秒後は未来」 RSSフィード"
 href="http://feeds.feedburner.jp/blog-fkoji" />

↑ オートディスカバリーの例

linkタグを見つけるためだけにHTMLのパーサーを使うのはめんどくさいので、マッチングを何度か利用することにします。おおまかな流れは以下の通り。

  • 与えられたHTMLから link タグをマッチングですべて抜き出します。
  • それぞれのlinkタグについて以下の処理をおこないます。
    • rel="alternate" 属性があるか確認します。
    • type属性を探します。
    • type属性の値が以下の5つのいずれかであることを確認します。
      • application/rss+xml
      • application/atom+xml
      • application/rdf+xml
      • application/xml
      • text/xml
    • href属性を探します。
    • href属性の値を絶対URLに変換します。
    • 変換後のURLが不正なURLでないことを確認します。(URL表現的にとか、プライベートアドレスでないかとか)
  • URLを取得できたものの中にapplication/rss+xm、application/atom+xml、application/rdf+xmlのいずれかが含まれていれば、application/xml、text/xmlのものは無視します。なぜならサイトマップのオートディスカバリーである可能性があるためです。

という流れで大体うまくフィードのURLを取得することができます。忘れがちなのがURLを絶対URLに変換しないといけないとこでしょうか。はてなブックマークのAuto Discoveryが普通にスラッシュ始まりで指定されていたので気づきました。

最後のサイトマップの可能性は、細かいことですがたまにあるので念のため意識しておくといいです。

スポンサード リンク

Written by
Meity.jp - Twitterなかまでプライベートなオフ会を開催したいなら


トラックバック

このエントリーのトラックバックURL:

RSS / プログラミング

English version

前のエントリー: « Google AJAX Search APIのブログ検索はページングが動かない
次のエントリー: GoogleがホスティングしてるjQueryなどのJavaScriptライブラリを使う方法 »

コピペにご利用ください。

タイトル:

URL:

リンク用HTMLタグ: