提供される情報の種類
フィード(Feed)はWebサイトの更新情報を配信するものでしたが、
いまでは様々な情報を公開するのに用いられています。
- サイト固有の新着情報
ニュースサイトの新着記事、通販サイトの新着商品など。
- ユーザ固有の新着情報
ブログの新着記事、ソーシャルブックマークの新着ブックマーク、twitterの最新のツイートなど。
- 統計情報
定期的に計算されるランキングなど。
- 検索結果
ブログ検索、オークション検索など。
フィードの例
サイト固有の新着情報 (一般)
サイト全般の更新情報から、ニュースサイトの新着記事、通販サイトの新着商品など、
サイトのコンテンツを提供している側による新着情報です。
- 毎日新聞 [RSS 1.0 (utf-8)]
ジャンルごとの最新ニュース20本を RSS 1.0 で提供しています。なお、description 要素はありません。
フィードに含まれる有料記事へのリンクがリダイレクトされるため、エラーが起きることがあります。
例: ニュース総合のRSS
- 朝日新聞 [RSS 1.0 (utf-8)]
ジャンルごとにフィードが提供されています。description要素は空です。
- Yahoo! ニュース [RSS 2.0 (utf-8)]
Yahoo! ニュースはいろいろなソースからのニュースを掲載していますが、ニュースソース別のフィードを提供しています。
description 要素には記事の先頭部分が入っています。
- 虚構新聞 [RSS 2.0 (utf-8)]
虚構報道専門のニュースサイト(自称)「虚構新聞」の新着記事のフィードです。
新着記事
- NTT-X Store [RSS 0.91 (utf-8)]
特価コーナー の RSSを提供しています。
例: デジカメ特価コーナーのRSS
- Touch Lab [RSS 2.0 (utf-8)]
iPhone・iPod touch・iPadのニュース、便利な使い方、アプリとアクセサリのレビューなどが掲載されています。
最新記事一覧
- ぐるなび [RSS 2.0 (utf-8)]
ぐるなびのレストランランキングです。
この1週間で注目度が急上昇中のレストランランキング:
全国,
東京,...
サイト固有の新着情報 (掲示板など)
掲示板などユーザがコンテンツを作りだすタイプのサイトでは、
板ごとやスレッドごとなどに新着情報のフィードが提供されていることがあります。
ユーザ固有の新着情報
特定のユーザの行動に依存する最新情報も、
ユーザごとのフィードが提供されていれば取得することができます。
特定のブログの新着記事、ソーシャルブックマークにおけるあるユーザの新着ブックマーク、
あるユーザの最新のツイートなどが取得できます。
- ブログ
ブログは不定期に更新されるものであるため、フィードが提供されていないことはほとんどありません。
- Twitter
- はてなブックマーク [RSS 1.0 / Atom]
はてなブックマークでは、ユーザを指定して、そのユーザのブックマークを得ることができます。パラメータを指定することにより、過去のブックマークの情報も取得することが可能です。ユーザ名が otsune だとすると、フィードのURLは https://b.hatena.ne.jp/otsune/rss となります。
統計情報
定期的に計算されるランキングなどがあります。
検索語のランキングは結果がワード(単語)なので、
取得したワードで他の検索をしたり、他のフィードの情報を絞り込んだりすることが容易です。
検索結果
ショッピングサイトの検索、ブログ検索などで、検索結果の一覧をフィードの形式で取得できる場合があります。
これにより、Webサイトの更新をチェックするのと同じ枠組みで、
検索でヒットするものの出現状況をチェックすることができます。
検索クエリを伝える必要があるため、フィードの URL に検索クエリがパラメータとして埋め込まれます。
日本語(マルチバイト文字)など URL に使えない文字を埋め込む際には URL エンコードが必要です。
"https://example.com/api?q=" + URLEncoder.encode(検索クエリ, "UTF-8")
- Yahoo! JAPAN [RSS 2.0]
- ヤフオク!, Yahoo! ショッピング, Yahoo! 知恵袋の検索: 検索結果の一覧が RSS で配信されていましたが、終了しました (先輩のプログラムを入手しても動作しません)。
- AFeed - Amazon フィード系 Webサービス [RSS 2.0/1.0/Atom (utf-8)]
Amazon.co.jp の検索結果が RSS で得られます (非公式)。
- RakuFeed - 非公式 楽天 フィード系 Webサービス [RSS 2.0/1.0/Atom (utf-8)]
楽天市場/楽天ブックス/楽天トラベルなどの検索結果が RSS で得られます。
楽天Webサービスで使える多くのパラメータの指定もできます。
- eBay [RSS 2.0 (utf-8)]
検索結果のフィードが得られます。検索結果のページのURLの末尾に &_rss=1 を付与すると RSS になります。
- 教えて!goo [RSS 1.0 (utf-8)]
検索結果のフィードが、検索結果のページの RSS ボタンから得られます。
link要素のURLが http になっていますが、https に書き換えてアクセスしないとリダイレクトされます。
- ブックオフオンライン [RSS 2.0 (utf-8)]
検索結果のフィードの URL が、検索結果のページのソースの link 要素にあります。
URLエンコードを二重にかける必要がある特殊仕様です。URLエンコードする際の文字コードは Shift_JIS です。
フィードの URL は以下のようになります。
"https://www.bookoffonline.co.jp/feed/search,st=a,q=" + URLEncoder.encode(URLEncoder.encode(検索クエリ, "Shift_JIS"), "Shift_JIS")
なお、レスポンスの文字コードは UTF-8 です。
はてな検索など一部の検索サービスのフィードは、Amazon が提唱している
OpenSearch という規格に準拠しています。
その他 総合
- goo (NTTグループ)
- goo天気 のフィードは拡張子が rdf なのに、
中身は RSS 2.0 です。また、
文字コードが UTF-8 ではなく EUC-JP です。
- link要素の URL のプロトコルが http になっているフィードがあります。
リンク先に接続する際には https に書き換える必要があります。
- はてな
フィードがみつからない場合
サイトにフィードのアイコンが見つからない場合には、ページのソースを見てみましょう。
head 要素内の link 要素に、RSS や Atom の URL が記述されているかもしれません。
ソースを見るのが面倒な人は、検出してくれるサービスを利用してもよいでしょう。
フィードがない場合
サイトでフィードが提供されていない場合、
まずは HTML から RSS に変換するサービスを試してみるとよいでしょう。
ただし、きれいな RSS が得られることは少ないので、あまり期待しないでください。
自分のプログラムで対処する場合、
HTML で記述されたWebページを処理することになります。
RSS と違いサイトごとに構造が異なるため、作り込みが必要です。
Webページが xhtml で記述されていなければ、
XML 用のライブラリも使えません。
また、プログラムからの Webページの取得を拒否するサイトもあります。
茨の道を覚悟しましょう。
フィードのdescription要素の内容が少ない場合
本文から情報を取得し補完するサービスがあります。
あまり期待しないでください。
フィードが異常な場合
フィードの処理がうまくいかず、フィード自体に問題の原因があると考えられる場合には、
フィードが正しいかを確認してみましょう。