OREFOLDER

KLWP/KWGTでYahoo!天気の6時間ごとの降水確率を表示してみる

Yahoo!天気の配信しているRSSを使ってKLWP/KWGTで天気を表示する方法があります。しかしこれには降水確率が含まれていません。というわけで、Yahoo!天気のRSSじゃないところから情報を取得して表示してみます。

  • 本記事は広告およびアフィリエイトプログラムによる収益を得ています。

ウェブページから情報を取得

Yahoo!天気では、地域ごとのページで今日明日の天気と6時間ごとの降水確率を見ることができます。

KLWP/KWGTではウェブページの内容を取得・表示できるので、今回はそれを使います。

ウェブページの内容を表示するには主に2つのコードがあります。

$wg("URL", txt)$
$wg("URL", raw)$

txtの方はhtmlタグなどを除いたテキストが表示されます。rawの方はそのページのソースをそのまま表示します。今回はrawの方を使います。

降水確率を表示する

Yahoo!天気の「土浦」の天気予報ページから降水確率を表示してみます。

まず、天気予報ページのURLは何度も使うことになるので、グローバル変数「wurl」に登録しました。

土浦の天気予報ページから12-18時の降水確率を表示するコードは以下になります。
$tc(cut, tc(split, tc(split, wg(gv(wurl), raw), "降水</th>
            <td>", 1), "</td>
            <td>", 2), 3)$

赤字の部分の数字は2番目ということです。0-6時なら0、6-12時なら1、18-24時なら3になります。

ページのソースを見ると、以下のようなコードがあります。

これを$tc(split)$を使ってなんとか切り出しているということです。
Yahoo!天気の各地域のページは皆同じ構成になっているので、URL部分だけを変えれば他の地域でも同様に表示されるはずです。

Yahoo!天気のページのソース(html)は記事執筆時から変わっているようです。考え方は同じなので、自分でソースを表示して、該当部分を探してみてください。

同じようにソースから切り出せば、天気アイコンもYahoo!天気のものをそのまま表示できます。…まぁ、あまりお行儀の良くない行為ではありますが。

コンポーネント

上の方法を使って、他の時間帯や1日の最高気温最低気温も表示できます。サンプルとしてコンポーネント化してみました。KLWP/KWGTで読み込めるので、興味ある方はダウンロードしてみてください。

1は前回配布したオリジナルアイコンを使用したもの、2はYahoo!天気から画像を持ってきているものです。どちらもグローバル変数で自分の表示したい地域のURLを設定してください。

まとめ

ソースコードを読む力は必要ですが、今回の方法を使えばRSSを配信していないようなサイトでも、そのページ内容から切り出してKLWP/KWGTで表示できます。tenki.jpなら各地域の3時間天気や1時間天気などもっと細かい情報も拾えます。たぶんコードとにらめっこすればそれをうまく表示することもできるでしょう。こだわりたい人は頑張ってください。


KLWPの使い方については、これまでの記事をまとめたページもあります。使い方に困ったときなど、こちらのページも参考にしてください。

モバイルバージョンを終了