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