tenki.jpをWebスクレイピングしてみた

Webスクレイピングをやりたい思いました

とくに深い意味はないのですが、やってみたいなーという気になりました

身近でお手軽なものということで天気情報を発信しているサイトをスクレイピングしてみました

手始めにtenki.jpをやってみました

tenki.jpとは

一般財団法人日本気象協会と株式会社ALiNKインターネットが運営している天気予報専門サービスです

様々な観測情報や予測情報、気象協会独自の予測モデル等により解析したものとなっています

参考:https://tenki.jp/docs/help/#a00-00

Googleで天気情報で検索すると上位に表示されるためこのサイトにしました

プログラム

プログラムは以下のようになっています

前提として局所的な天気(〇〇県〇〇市〇〇町)でなく、広域の市まで(〇〇県〇〇市)の天気情報の取得としています

pythonで組み、BeautifulSoupを使ってスクレイピングしています

BeautifulSoupは簡単にスクレイピングできて便利です

注意点として、現時点(2018/10/02)での動作です

サイトの更新等でできない可能性があります

プログラムの説明

mainのなかに住所(市まで)を入れると今日の天気情報を取得できます

関数Tenki()なのですが、ちょっと特殊に組んでいます

例えば”新潟県新潟市西区”にのURLは下記のようになっています

https://tenki.jp/forecast/4/18/5410/15103/

末尾の”/4/18/5410/15103/”がどのような生成方法か不明であったため、一度検索を行うURL(下記)をリクエストして、”新潟県新潟市西区”のURLを取得しにいっています

https://tenki.jp/search/?keyword=新潟県新潟市西区

今回は前提として局所的な天気でなく、広域の市までの天気情報が知りたいため、”950-0000新潟県新潟市西区以下に掲載がない場合”のURLを取得しました

htmlでみると下記のようになっており、hrefの値をもらい、Urlを合体しています

あとは気温や天気、風情報を取得して出力をしています

辞書型の添字が日本語で少し気持ち悪いですが、便宜上このようにしています

実行結果(一例)

新潟県新潟市西区の天気
気温(最高) 22[-1]
気温(最低) 18[-2]
天気 曇
風 南西の風

新潟の他にもいろんな都市もできるのでやってみてください

スポンサーリンク