前回ご紹介した Flickr API は海外発の Web サービス API でしたが, 国内からも多くの API が登場しています。 今回は,その中でも早い時期から API 公開に取り組んでいた livedoor天気情報 の提供する Web サービス API をご紹介します。 自分のブログに地元の天気情報を貼れる『天気予報ブログパーツ』を作成してみましょう。

livedoor 天気情報の配信フォーマット

 Weather Hacks では,有料配信や課金サイトでの利用を除き, 非商用ならば誰でも無償で天気情報を利用することができます。 天気情報のように,従来ならば取得に費用がかかり, 個人では利用しにくかったデータを手軽に利用できるのも, Web サービス API のおかげと言えるでしょう。

図1:livedoor天気情報と Weather Hacks

 livedoor 天気情報サイト自体は, 普通にWebブラウザの画面で閲覧していくタイプの天気情報のサイトです。 それに加えて,ブラウザ以外でも天気情報を利用しやすいように, Weather Hacks として様々な形式でデータを配信しています。

 このうち,Web サービス API としては お天気Webサービス(Livedoor Weather Web Service/LWWS)をご紹介するのが最も適切なのではありますが, 今回は,より手軽に利用できる RSS フィード版を使用してみます。 定点の天気情報については,RSS フィード版でも LWWS とほぼ同等のデータを得られますし, RSS フィード版でも「URL を引数としたリクエストに対して,RSS 形式のレスポンスを返す」タイプの Web サービス API であると言うこともできるでしょう。

 RSSフィード一覧 のページに,地域ごとの RSS フィードへの URL が一覧で掲載されています。 北は北海道の稚内地域から 南は沖縄県の与那国島地域まで, 全国が 142 地域に細分化されています。 今回は,この地域ごとの天気情報 RSS フィードを利用します。(今日・明日の天気欄)

図2:Weather Hacksの配信するRSSフィード一覧

 地域ごとの天気情報以外にも,地震情報,季節特集・読み物,警報・注意報,アメダス等の RSS フィードが提供されていますが,今回は利用しません。 応用も難しくないので,チャレンジしてみてください。

RSS フィードのフォーマット

 一覧ページから自分の地元の RSS を見つけたら,とりあえず, まずはその地域名リンクをクリックして,ブラウザで開いてみましょう。 例えば,関東地方の東京地域の天気情報 RSS フィードのファイルは 13/63.xml となります。

図3:RSSフィードの例

 冒頭の <?xml~ の青い行は,このファイルが XML 形式であることを宣言しています。 次の <rss version="2.0"~ の行で,このファイルが RSS 2.0 フォーマットであり, さらに livedoor 天気情報用に拡張されていることがわかります。 ファイル中盤から始まる <item>~ の部分が,今回利用したい天気情報になります。

リスト1:天気情報 RSS フィードの <item> 要素例
<item>
    <title>[ 14日(火)の天気 ] 東京 - 曇時々晴 - 最高気温22℃ - 11月14日(火)</title>
    <link>http://weather.livedoor.com/area/13/63.html?r=rss20061114</link>
    <category>天気予報</category>
    <day>Tuesday</day>
    <image>
    <title>曇時々晴</title>
    <link>http://weather.livedoor.com/area/13/63.html?r=rss20061114</link>
    <url>http://image.weather.livedoor.com/img/icon/9.gif</url>
    <width>50</width>
    <height>31</height>
    </image>
    <description>14日(火)の天気は曇時々晴最低気温は13℃でしょう。</description>
    <pubDate>Tue, 14 Nov 2006 05:00:00 +0900</pubDate>
</item>

 RSS フィード本来の <title> 要素は, ブログ記事のタイトルが入る欄ですが, ここでは日付・地域名・天気・気温が列挙されています。
<link> 要素は,詳しい天気情報ページへのリンクURLです。
<image> 要素の子要素 <url> は, 天気アイコン画像の URL です。
<description> 要素に,詳しい解説文が入っています。

 このように,RSS ファイルを目で眺めることで天気情報を読み解いていくことも不可能ではありませんが, RSS は人間が読むよりも,機械処理に適した形式です。 次では,この RSS ファイルを解析して人間にわかりやすい表示を実現するプログラムを作成してみます。