見出し画像

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 で新しいアプリを作成(任意の名前)画像1

5. Heroku Postgres & Heroku Scheduler & Chrome & Chromedriver の設定

HerokuのダッシュボートでResourcesタブを開き、Add-onsにて「Heroku Postgres」を検索。Provisionをクリック。以上でPostgresの導入ができます。

画像1

同様に Heroku Schedulerも追加。

画像2

Chrome & Chromedriver は Settingsタグの Add Buildpack にて「https://github.com/heroku/heroku-buildpack-chromedriver」と「https://github.com/heroku/heroku-buildpack-google-chrome」を入力し、Save changesをクリック。

画像3

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 をクリックし、実行させたいタスクを登録

画像4

実際のLINE Notifyの通知画面

画像5

まとめ

noteに、何を書くか、書かないかという捨拾選択をせず、勢いに任せた内容となってしまったことを内省している。読者は誰を想定しているのかという、根本的な問いを立てていなかったことが原因と思われる。一方で、忘備録としては、情報量が多い方が、後々効果があるのではないかとも思い、難しいところだと思ったりもしました。
プログラムに関しては、しっかりと問題なく動いているので良いのではないかと思います。これをLINE Notifyだけでなく、Twitter bot に呟かせるのも面白そうですが、需要があるのか?とpublicに流して良いデータかという判断をどうするかという壁もあり、検討中です。

この記事が気に入ったらサポートをしてみませんか?