【超初心者が最初から最後まで】pythonのseleniumをサーバー上で動かす(heroku+GitHub)後編

旅行・趣味

どうも、ゆうです!
最近、プログラミングに激ハマり中です。

どうにか、費用をかけずにクラウド上とかで実行する方法を探したところ、herokuというプラットフォームを見つけました!

私は本当に超初心者な上に独学なので、表現も含め間違いがあるかもしれません。ご了承の上、自己責任で参考にしてください。

前編はこちら

ざっくり流れ

PC上(VSCode)のフォルダをリモートでGitHubに同期して、GitHubとHerokuも同期して、Heroku上で動かし、PCの電源が入っていなくても、自動で定期実行させる流れです。

https://note.com/financedog/n/n2044628a508e

Herokuを無料で動かせるのは、1000時間(クレカ未登録の場合は550時間)までで、time.sleepやschedule.run_pending()が動いている時間も含まれます。

定期実行ならHeroku schedulerというAPIを使うことで時間を節約できます。

環境

Mac OS Catalina 10.15.7 64bit 2.5 GHz デュアルコアIntel Core i5
Python 3.9.5(vscodeで作成)

ローカルとGitHubを繋ぐ

作成したGitHubのリポジトリにローカルのフォルダを紐付けます。

プログラムを入れたフォルダに移動

(私の場合は「デスクトップ > python > heroku > test」)

ターミナルで次を記述する。

cd python
cd Heroku
cd test

.gitをインストール

ターミナル で次を記述する。元々ある場合は、初期化されるらしいです。

git init

隠しフォルダなので、インストールされたかを確認

Macで隠しフォルダ・ファイルを表示させる

Finderを開き、「command + shift + .」を同時に押す
と、ニョキッと出てきます。

https://mtntmyk.hatenablog.com/entry/2018/01/28/115234

リモートリポジトリURLを設定

① GitHubの作成したリポジトリ画面から、リモートリポジトリURLをコピー

https://note.com/kazuyamano/n/na9cc1cd4f490

② ターミナルで次を記述する。

git remote add origin リモートリポジトリURL

③ 設定できているか確認

ターミナルで次を記述する。

git remote -v
git config user.name
git config user.email

下のように、それぞれが返ってきたらOK

https://note.com/kazuyamano/n/na9cc1cd4f490

ローカルフォルダとリモートリポジトリを繋ぐ

「プル→コミット→プッシュ」で連携するらしいのですが、「プル = フェッチ + マージ」らしいので、まずはフェッチとマージをします。
言葉の意味はわかりません(笑)

プルする。

① ターミナルで次のコマンドを記述して、フェッチする。

git fetch

② ターミナルで次のコマンドを記述して、マージする。

git merge origin/main

コミットする。

① VSCodeのSouce Controlを開く

https://note.com/kazuyamano/n/na9cc1cd4f490

② 入力欄に、タグとなるコメントを入力して、Command+Enter(もしくは入力欄右上のチェックマークアイコンをクリック)

https://note.com/kazuyamano/n/na9cc1cd4f490

プッシュする。

左下の雲と上矢印のアイコンをクリックする。

確認

① GitHubを更新したら、元々ローカルフォルダ内にしかなかったpythonデータが表示されればOK

https://note.com/kazuyamano/n/na9cc1cd4f490
表示されない場合は、Branchを「master」にしてみると、表示されると思います。

GitHubのおすすめは「main」のようですが「master」の方が使い勝手が良さそうなので、私は「main」を削除しました。

Herokuを設定

アプリを作成する

① 「New」をクリックして、「Create new app」をクリックする。

https://note.com/kazuyamano/n/na9cc1cd4f490

② 好きなアプリ名を入力し、「Create app」をクリック
  (私は、アプリ名を「test-heroku」にします。)

https://note.com/kazuyamano/n/na9cc1cd4f490

Build Packを挿入

ターミナルで次を記述して、必要なパッケージを設定します。

・Python

heroku buildpacks:add heroku/python --app Herokuのアプリ名(私の場合は「test-heroku」

・Chrome

heroku buildpacks:add https://github.com/heroku/heroku-buildpack-google-chrome --app Herokuのアプリ名(私の場合は「test-heroku」)

・Chrome Driver

heroku buildpacks:add https://github.com/heroku/heroku-buildpack-chromedriver --app Herokuのアプリ名(私の場合は「test-heroku」)

Build Packを直接挿入

上のBuild Packだけでも良いとあったのですが、うまく動かなかったので、次も挿入したら、無事に動きました!

Herokuの「Settings」内の「Buildpacks」「Add Buildpack」をクリックし、次をぞれぞれ入力して、「Save changes」をクリック

https://github.com/heroku/heroku-buildpack-google-chrome
https://github.com/heroku/heroku-buildpack-chromedriver
https://nkmrdai.com/python-heroku-linenotify/

タイムゾーンを日本に設定

・タイムゾーン

heroku config:add TZ=Asia/Tokyo --app Herokuのアプリ名(私の場合は「test-heroku」)

できているか確認

① Herokuの「Settings」内の「Config Varlables」が入力されていればOK

https://nkmrdai.com/python-heroku-linenotify/
Heorkuに設定したデータは公開されるらしい(本当に?)ので、公開したくない情報(ログイン情報など)は、ここで代入できます。)

② ターミナルに次を記述して、日本時間(JST)で出ればOK

heroku run bash --app Herokuのアプリ名(私の場合は「test-heroku」)
date
https://note.com/kazuyamano/n/na9cc1cd4f490

確認できたら、ターミナルに次の記述をして、退出する。

exit

GitHubとHerokuを繋ぐ(デプロイ)

GitHubとHerokuを繋ぐことをDeploy(デプロイ)と言うらしいです。

デプロイの設定

① Herokuの「Deplory」をクリック

② 「Deployment method」から「GitHub」をクリック

③ 「Connect to GitHub」から、GitHubのリモートリトジポリを検索

④ 作成したリモートリトジポリを選択して接続(connect)
(私は、「test_repository」)

「GitHub」の下が「Connected」になっていれば、接続完了

https://k-koh.hatenablog.com/entry/2020/09/15/183220

デプロイ

① 「Manual deploy」で、ローカルとGitHubを繋いだ時のbranchを選択して「Deploy Branch」をクリック

② デプロイが完了すると、「View」が表示されます。
HerokuはWebアプリ開発のためのプラットフォームですが、今回は特に公開しないので「View」を押しても特に何もありません。

https://camo.qiitausercontent.com/ff906db009006c5a0717de609a9ff53f6f0f91a6/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f33373236332f64383732306232372d333265652d616331302d613834382d3563363363643861306638622e706e67

実行してみる

ターミナルに次を記述をする。

heroku run --app Herokuのアプリ名(私の場合は「test-heroku」)

実行結果を見る

ターミナルに次を記述をする。

heroku logs --app Herokuのアプリ名(私の場合は「test-heroku」)

やっと、実行できました、、!!

コメント

スポンサーリンク

タイトルとURLをコピーしました