Taskerでtenki.jpの10日間天気を取得する
Androidのアプリ、Taskerを使ってtenki.jpの10日間天気予報を取得する。
ここで取得するのは日付、天気名、最高気温、最低気温、降水確率の5データを10日分。
50データをそれぞれ固有名の変数に格納するので、KLWPやZooperなどの外部のウィジェット系アプリに変数を渡す時に必要なデータのみを選択して渡すこともできる。
ファイル置き場: clovana_2.xml
使い方と解説
- 1. Variable Set
- tenki.jpのURL中の地域データ部分を指定する。
東京都千代田区九段南(千代田区役所の所在地)であればforecast/3/16/4410/13101/
なので、ここでは3/16/4410/13101
と入力する。最初と最後のスラッシュは不要。
- tenki.jpのURL中の地域データ部分を指定する。
- 3. HTTP Get
- tenki.jpのURLに先ほど指定した変数を組み込んでアクセスする。
そのままだとスマホ用のページのHTMLを取得してしまうので、UserAgentを偽装してPC版のページを取得する。
Tasker/cache/tenki.jp_10days.txtに取得したHTMLを出力する。不要な場合はこの部分(Output File)を削除すること。
- tenki.jpのURLに先ほど指定した変数を組み込んでアクセスする。
- 5. Variable Split
- 取得したHTMLソースの切り分けを行う。ここでは
<tr>\n <th>
を指定して切り分けている。
Splitterの前と1つ目の該当部分から2つ目の該当部分まで、2つ目の該当部分から3つ目の該当部分まで…と繰り返して11に切り分ける。
- 取得したHTMLソースの切り分けを行う。ここでは
- 6. Write File
- 切り分けた部分を確認しやすいようにテキストファイルとして保存する。不要な場合は削除する。6-14行目までと16行目も同様。
- 15. Variable Set
%t10Days10
と変数名末尾の数字が2桁になってしまって編集が面倒くさくなるので末尾を%t10Daysa
に変更した。
同様に%t10Days11
も%t10Daysb
に変更。
- 18-31.
- 今日の天気部分。
うまい方法を思いつかなかったのでひたすらVariable Splitで切り分けている。
なお今日の日付に該当する部分は%t10Days2
に全て格納されている。
- 今日の天気部分。
- 32-46.
- 明日の天気部分。
明日の天気部分は%t10Days3
に全て格納されている。
この部分は今日の天気部分の18-31行目をコピー&ペーストし、%t10Days2
を%t10Days3
に。格納する変数部分の%t10Dtd
を%t10Dtw
に書き換えている。以降も同様に前日分をコピー&ペーストし、該当部分を書き換えの繰り返し。
- 明日の天気部分。
- 159. Write File
- 完成した変数名と、格納されたテキストをtxt形式でファイルに出力する。
必要ない場合は削除する。
- 完成した変数名と、格納されたテキストをtxt形式でファイルに出力する。
このTaskで作成した変数名
変数名は以下の規則で命名し、以下のフォーマットで記述する。
- prefix
%t
= tenki10D
= 10Days.htmlの
- date
td
= today (01日目)tw
= tomorrow (02日目)03
= 03日目の04
= 04日目の05
= 05日目の06
= 06日目の07
= 07日目の08
= 08日目の09
= 09日目の10
= 10日目の
- text
d
= daten
= nameth
= temp-hightl
= temp-lowrp
= rainy percent
組み合わせて、%t10Dtdd
= 10days.htmlから取得した今日の日付
%t10D08th
= 10days.htmlから取得した08日後の最高気温
天気名称とアイコンについて
tenki.jpの10日間天気予報で使用される天気の名称は7種類しかありません。単品、時々、のちをあわせて全31種。
ZooperWidgetやKLWPなどのカスタマイズ系アプリに変数を渡す際はこの点に注意して変数を渡すと良いでしょう。
AのちB、A時々Bなどの天気名称はない為、アイコンセットを使わずとも比較的楽に設定できると思います。
downThemAllなどでhttps://static.tenki.jp/images/icon/forecast-days-weather/[00:99].pngで一括ダウンロードすると00.pngから30.pngまでの全31種のアイコンをダウンロード可能。
次は1時間天気(1hour.html)を作成予定。
[…] 前回のTaskerでtenki.jpの10日間天気を取得するに引き続き、今回は1時間天気(1hour.html)から必要なテキストを取得・格納する。 […]