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!天気のものをそのまま表示できます。…まぁ、あまりお行儀の良くない行為ではありますが。

コンポーネント

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

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

まとめ

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


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

Random Posts

Galaxy S8:やっぱり赤×黒がカッコいい!pzxの0.7mm超薄型ケースを購入
フラットなミクさんの傘差しホーム画面【ホーム画面定期コンテスト】
ANDROID ICONで紹介したアイコンパック-太く縁取りされたコミック風アイコン (2017.05.15)
HTCサポーターズクラブの企画で台湾へ!さくっとSIMを購入 #HTCグローバルレポーター
OmniClock:アラームやタイマーを備えた赤と青のシンプルなアナログ時計ウィジェット
ZenFone 3 サファイアブラックは大人の紳士的な雰囲気!パールホワイトとは違った「良さ」あり!
第1回ホーム画面カスタマイズ定期コンテスト 投票結果発表! 1位はドロイド君の新緑ホーム画面
HTCの本社および工場を見学!目の前で作られているのは…あの端末!? #HTCグローバルレポーター
cheeroのUSB PD対応小型充電アダプタ cheero USB-C PD Charger CHE-324 を購入
Widgets for Gmail:指定したGmailの受信箱をホーム画面にリスト表示するウィジェット
Minimal Sky【ホーム画面コンテスト2017】
100円ライターより小さい!スマホとBluetooth接続できる超小型携帯電話:Decwin A
Clear Clock:ダイヤルロックのような数字盤が回転する時計ウィジェット
ごちゃつくUSBケーブルを整理!マグネットでくっつくケーブルホルダー
Wiko Tommy レビュー その2:設定画面におかしな日本語は残るが、独自機能は便利で好印象