以前作成したオウム返しLINEボットに、天気予報機能を搭載させてみます。
-オウム返しLINEボットの作成手順
具体的には、天気予報を確認したい都市名を送信すると、LINEボットがその都市の天気予報を集めて返信してくれるようにします。
目次
天気予報サービス
天気予報情報の収集には、Livedoorのお天気Webサービスを利用します。 お天気Webサービスの仕様は、こちらから確認可能です。
仕様にも書かれていますが、天気予報情報は「http://weather.livedoor.com/forecast/webservice/json/v1」に、全国地点定義表で定義された都市のidを加えたアドレスにアクセスすることで取得できます。
ボット機能
ボットの機能は以下の通りです。
- ユーザーが都市名を入力
- 全国地点定義表を取得
- 入力した都市名が定義表内にあればそのidを取得
- idから天気予報を取得
- 天気予報を表示
但し、定義表内から都市名が見つからない場合は、オウム返しさせます。
モジュールのインストール
Web上からのデータ収集に使用するモジュールをインストールします。今回使用するのは、以下の二つです。
- beautifulsoup4
- lxml
「beauifulsoup4」はスクレイピングやAPIの読み込みに利用するモジュールです。 今回は、Livedoorのお天気APIの読み込みと、全国地点定義表の読み込みに使用します。
全国地点定義表は「xml(eXtensible Markup Language)ファイル」となっているため、そのままでは「beautifulsoup4」では扱うことができませんが、 別途「lxml」モジュールをインストールすることで、「beautifulsoup4」を用いて読み込みが可能になります。
前回同様、Herokuへデプロイするときに便利なので、pipenv
を用いてインストールしましょう。
ボットが保管してあるディレクトリに移動後、
pipenv beautifulsoup4
と
pipenv lxml
を実行してモジュールをインストールし、
pipenv shell
を実行して仮想環境に入ります。pipenv shell
をしないとインストールしたモジュールは使用できません。
以上で準備は完了です。
次からはPythonで天気予報を取得するコードを書いていきます。
- 次回