Python3 & Heroku & LINE Notify で作る 通知Bot の忘備録 Heroku編
この記事は自分用の忘備録として。
でも、どこかの誰かの参考になればとも思いつつ。
*お願い*
本記事のコードやその他の点において、非合理的な点や、お見苦しい箇所があるかもしれません。あるでしょう。ご容赦ください。
ご注意事項
スクレイピングは時として諸刃の剣になり得ます。訪問先Webサーバに過負荷を与えないよう調整しましょう。また、スクレイピングを禁止しているサービスもあります。実際に行う際は、くれぐれも自己責任で。
この記事を読まれる前に。
この記事では、Herokuへデプロイ&LINE Notifyでの通知を扱います。よって、この記事は「Python3 & Heroku & LINE Notify で作る 通知Bot の忘備録 コード編」という記事の、続編にあたるものです。実際のコードは、そちらに書いてありますので、まだ読んでいない方は、そちらからどうぞ。
動作環境
ローカル
・MacBook Pro (13-inch, 2019, Four Thunderbolt 3 ports) Version 10.15.2 (19C57)
・Python 3.7.5
サーバ
・Heroku
Data Base
・Postgres
Herokuへのデプロイと実行
ざっくりの流れ。
1. Herokuでアカウント登録。
2. Heroku CLI のインストール。
3. Terminalを使用して、Herokuにログイン。
4. Heroku create で 新規アプリを作成。(今回のアプリ名は任意)
5. Heroku Postgres & Heroku Scheduler & Chrome & Chromedriver の設定。
6. 前記事で作成したPythonプログラムとその他ファイルを準備。
7. gitを使用して、デプロイしていく。
8. 実際に、Herokuで実行する。
9. Heroku Schedulerの設定を行い、1日おきに実行する。
2. Heroku CLI のインストール
$ brew install heroku/brew/heroku
3. Heroku ログイン
$ heroku login
heroku: Press any key to open up the browser to login or q to exit
› Warning: If browser does not open, visit
› https://cli-auth.heroku.com/auth/browser/***
heroku: Waiting for login...
Logging in... done
Logged in as me@example.com
4. Heroku で新しいアプリを作成(任意の名前)
5. Heroku Postgres & Heroku Scheduler & Chrome & Chromedriver の設定
HerokuのダッシュボートでResourcesタブを開き、Add-onsにて「Heroku Postgres」を検索。Provisionをクリック。以上でPostgresの導入ができます。
同様に Heroku Schedulerも追加。
Chrome & Chromedriver は Settingsタグの Add Buildpack にて「https://github.com/heroku/heroku-buildpack-chromedriver」と「https://github.com/heroku/heroku-buildpack-google-chrome」を入力し、Save changesをクリック。
6. Heroku にデプロイする為の、関連ファイル作成
Herokuにデプロイする為には、以下のファイルが別途必要です。
・「requirements.txt」>> 外部モジュールのやつ。
$ pip freeze > requirements.txt
・「runtime.txt」>> Pythonのバーションを設定するやつ。内容は以下のようなやつ。
python-3.6.5
7. gitを使用して、Herokuにデプロイ
作成したプログラムとファイルのディレクトリに移動
$ cd heroku_note
ローカルリポジトリの作成
$ git init
インデックスに追加
$ git add .
コミット(コメントは適当でも良きです)
$ git commit -m 'hogehoge'
プッシュ
$ git push heroku master
最後の、pushを実行して、いろいろ読み込まれるような画面が走れば多分成功。
8. Herokuで、Pythonを実行する
$ heroku run python ファイルの名前.py
9. Heroku Scheduler の設定
Heroku Scheduler の Create job をクリックし、実行させたいタスクを登録
実際のLINE Notifyの通知画面
まとめ
noteに、何を書くか、書かないかという捨拾選択をせず、勢いに任せた内容となってしまったことを内省している。読者は誰を想定しているのかという、根本的な問いを立てていなかったことが原因と思われる。一方で、忘備録としては、情報量が多い方が、後々効果があるのではないかとも思い、難しいところだと思ったりもしました。
プログラムに関しては、しっかりと問題なく動いているので良いのではないかと思います。これをLINE Notifyだけでなく、Twitter bot に呟かせるのも面白そうですが、需要があるのか?とpublicに流して良いデータかという判断をどうするかという壁もあり、検討中です。