Pythonで天気情報を取得する方法Python3LineNotifybeautifulsoup4はじめに本記事は今年の4月に投稿したものです。説明内容を追記して再更新しました。前回の記事はこちら→Pythonでブラックジャック作った。Notifyというサービスがあることを知り、早速調べてみました。Notifyでアクセストークンの取得する。Notifyにアクセスし、自分のLINEアカウントにログインした上で通知を行いたいチャットに対してアクセストークンの発行を行う必要があるとのこと。アクセストークンの取得手順は下記エントリが非常に分かりやすかったのでここでは割愛。■PythonでLINEに通知を送るhttps://qiita.com/hiro-abe/items/e42f857bd6b40bc178a3取得する天気情報データ天気情報は、livedoorの天気予報のRSSから取得。http://weather.livedoor.com/例えば、水戸の天気予報を取得する手順を記す。1.水戸市の天気を開き、RSSのボタンを押下する。http://weather.livedoor.com/area/forecast/0800102.下記のようなXMLファイルが開かれる。今回取得する天気情報はずばりコレです。天気情報を取得し、LINEに通知する仕組みを実装する。上記の天気情報は、Pythonのライブラリの1つであるBeautifulSoupを用いて取得可能である。インストールしていない方は、pipで所得。beautifulsoup4ソースコードはこちら。Notifyで取得したアクセストークンを入力して下さい。当日と翌日の水戸の天気と最高気温を簡単に取得できちゃいました。Pi3があったので、こちらでcronを回して運用することにしました。ちなみに運用イメージはこんな感じです。-eを実行して下記を入れるだけ。OSがLinuxだととても簡単です。<pythonファイル格納先の絶対パス>上記の例では毎日午前6時、午後6時に指定したpythonスクリプトを実行します。実行ファイルの指定は絶対パスで指定してください。(絶対パスで指定しないとうまく動かなかった・・・)天気情報に応じたアイコンを出してみた通知内容がテキストだけだと天気情報が直感的にわかりにくいので下記のように、テキストとアイコンをセットで出すようにしてみました。・「晴れ」だったら晴れのアイコンを出す・「晴れのち雨」だったら晴れと雨が順に並んでいるアイコンを出す↑こんな感じ。直感的に使いやすくなった気がします。ソースはは下記、だいぶ記載量増えてますがやってることはメッセージに出てくる天気情報を判別してアイコンを出すようにしているだけ。「◯◯のち▲▲」と「◯◯時々▲▲」は分けるとパターンが複雑になるため、一緒のアイコンを出すようにしています。headers=headers)なお、アイコンはフリー素材のサイトのものを使用しております。PNGでダウンロードし、指定したディレクリパスに格納しておけばOKです。強引に書きすぎたため、時間見つけてリファクタリングしてみます。スマートな書き方をご存じの方いたら教えていただけると嬉しいです。requestStockLike27@S_eki某メーカーでソフトウェアQAエンジニアやってます。業務自動化、ライフハックに興味があります。