Taskerでtenki.jpの1時間天気を取得する

前回のTaskerでtenki.jpの10日間天気を取得するに引き続き、今回は1時間天気(1hour.html)から必要なテキストを取得・格納する。

ファイル置き場: clovana_1.xml

使い方

解説は前回とほぼ同じことをやっているので省略する。
ただし今回はVariable Search Replaceを使って一部のHTMLタグを簡素化し、取り出しやすくした。

前回と同じく、1行目のVariable SetでURLのエリアデータ部分を指定する。
東京都千代田区九段南(千代田区役所の所在地)であれば forecast/3/16/4410/13101/ なので、ここでは 3/16/4410/13101 と入力する。最初と最後のスラッシュは不要。

あとはタスクを実行すれば、フォーマットに従って命名した変数に各テキストが格納される。
必要に応じてZooperWidgetやKLWP用の変数に渡してやる。

このTaskで作成した変数名

変数名は以下の規則で命名し、以下のフォーマットで記述する。

  • Prefix
    • %t = tenki
    • H = 1Hour.htmlの
  • time
    • 01 = 01時の
    • 02 = 02時の
    • 03 = 03時の
    • 04 = 04時の
    • 05 = 05時の
    • 06 = 06時の
    • 07 = 07時の
    • 08 = 08時の
    • 09 = 09時の
    • 10 = 10時の
    • 11 = 11時の
    • 12 = 12時の
    • 13 = 13時の
    • 14 = 14時の
    • 15 = 15時の
    • 16 = 16時の
    • 17 = 17時の
    • 18 = 18時の
    • 19 = 19時の
    • 20 = 20時の
    • 21 = 21時の
    • 22 = 22時の
    • 23 = 23時の
    • 24 = 24時の
  • text
    • h = hour (時間)
    • n = name (天気名)
    • t = temp (気温)
    • rp = rainy percent (降水確率)
    • rf = raifall (降水量)
    • rh = relative humidity (湿度)
    • ws = wind speed (風速)
  • 例外
    • %tHgen – Webページからの取得日時

prefix + time + text の組み合わせで変数名を指定する。
例えば午前4時の気温であれば、%tH04t。同様に午後8時の降水確率であれば%tH20rpとなる。

今回は取り出すテキストの数(=設定する変数の数)が多いので、タスク開始~終了までに十数秒かかるので、不要な部分があるなら(例えば降水量と風速)該当部分を削除してTaskを開始すれば時短を見込める。

例外としてWebページからの取得日時を取得する変数を設けた。
HTMLソース1行目の "generate at 20xx-xx-xx xx:xx:xx –>"部分から西暦-月-日 時:分:秒の部分を抽出して変数に格納した。

3行目のHTTP Getで、取得したHTMLソースをTasker/cache/souce_tenki.jp_1hour.txtへ保存している。
キャッシュファイルを作りたくない場合はOutput Fileの該当項目を空欄にすること。


なお3時間天気予報は1時間天気予報からの抜粋で、今日・明日の天気は10日間天気予報からの抜粋なので、元データ?となる1時間天気予報と10日間天気予報の2ページからデータを取り出せば、あとはそれぞれ必要な変数を指定するだけなので残りの2ページ用のTaskを作成する予定は無し。
ループ処理とか使えばもっと短くなるんだろうけど、おいおいってことで。