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= tenkiH= 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を作成する予定は無し。
ループ処理とか使えばもっと短くなるんだろうけど、おいおいってことで。