お悔み情報をLineへ定時通知

パソコン PC

勉強しながらだったので、ブログしばらく停止してました。

先日まで使用していたwebクラウドのherokuが、全面有料化となったため解約せざるを得なくなった。そのためherokuに設置していたLineへの「お悔み情報」の定時送信がSTOPしていた。

その筋で有名なGitHubでも定時送信機能が追加されていたことを知ったため、Pythonプログラムの更新とGitHubへのデポジットを試してみることにした。

もちろん、無料が最低条件!!!

Pythonでのプログラム作成

Googleさんにお願いして、基礎、入門 を見つけて、目的に合う情報を集めた。前提条件としてPython環境の構築がされていること。または、GoogleColabによる実行。私はすでにAnacondaにてPython3.8で仮想環境を構築済みなので、このまま作業を進める。

以前作ったPythonフォルダを見たが、完成版がどれなのか(原因不明のエラーだらけ)記憶に無いし、GitHub(無料枠)で使用するための使用容量制限などあるため、外部ライブラリ更新やモジュールの軽量化を図るため、コードも最初から書くことにした。

多分、 

—スクレイピングではサイト運営者に、ご迷惑をおかけしない様 requests で「お悔み情報」サイトにアクセスし、短時間で情報を頂戴して瞬時に切断。続いてbeautifulsoup4で欲しい部分を取得し、LineAPI(Notify)を使って自分宛にLine messageを送信する。出来上がったpythonファイルをGitHubにデポジットしておき、毎日定時に実行させる。—

で良かったと思う。

お悔み情報をスクレイピング

  • guruttoへ接続 urlを設定しておく
  • requestでwebを開く
  • responceで情報をごそっと受け取る
  • requestでwebを閉じる
  • 受け取った情報を必要な部分だけ取得して、message に代入しておく

messageをprintするとお悔み情報が表示されるので、このmessageを自分宛にLineでうまく送信できればとりあえずOK。

webサーバーmのHTMLが一括でtext形式になって<br>で区切られていいるだけなので一括取得は簡単だった。でも項目を分けて取得しなければならない場合は面倒そうだ。

このスクレーピング部分は単独で改良できるように、関数化(def)しておく。

LineAPIトークン発行と、LineNotifyの関連付け

LineNotify画面から自分のLINEアカウントでログインし、自分の情報を登録すると登録した携帯へSMS認証4桁数字が届くので、LineNotifyへ数字入力し、トークンを発行。

このトークンは忘れずに、メモ帳などに保管。1回しか表示しないので必ずここで保管!!! この後は自分宛に1:1で通知を関連付け名前を適当につける xxxx_xxxx 関連ドキュメントは、さらに下部にあるので、エンドポイントや使用方法も読んでおく。

PythonでLineNotifyへテスト送信

LineNotify[ドキュメントを読みながら、Googleさんに聞きながら、LineNotifyへPythonから何か」「メッセージを送るコードを作成。うまく届くまで試行錯誤の繰り返し、エラーがなくなるとメッセージが届く。

トークンは「LINE_NOTIFY_TOKEN」としてPythonと同じフォルダに置いておく。

自分のLineへNotifyからメッセージが届いた

何度か繰り返しコード作成し、Pythonコードを実行しメッセージの送信に成功した。

この後は、guruttoからスクレイピングした「お悔み情報」取得のコードと、LineNotifyでメッセージ送信を合体すれば良い。

LineNotify送信も関数化してメッセージ送信を確認する。

引数をmessageにしてLineNotify送信を関数化して送信テストをした。これがうまくいけば、あとはスクレイピングも関数化してmessageに代入すれば、組み合わせてうまくいきそうだ。

送信成功!!

スクレイピング部とLINE送信部をPythonファイルに書き下ろす

上記で作成した2つの関数を1つにまとめて、Pythonファイルにまとめた。

エディタはテキスト書ければなんでも良いが、以前使っていたVisualStudioCodeを使用した。これもしばらく使用していなかったので、最新版にアップデートが必要でした。

実行 python3 main.py ⏎

成功!!

GitHub設定

以前自作プログラムファイル貯蔵庫として使っていたので、アカウントはあったが画面がかなり変わっていた。うーうん

とりあえず、Googleさんにお聞きしながらです。Repogitoryで名前を付けて作成し、そこにLocalとremoteを接続してと、 masuter にファイル2つ(Token,main.py)をデポジットして動かすにはmain.ymlを作成。

 

 

yml??

pipで外部ライブラリーをinstallしてと…

トリガーはUTC(世界標準時間)でーっと。。。

実行環境はUbuntuで良かったよね、、、

 

セット完了!!明日の午前11時30分に起動して、10分後くらいにLINEに来るか!!

成功!

無事 受信できた!

でも、LINE受信できたのは、12:01? 11:30の設定ですが、無料版では多少の遅れが出る様です。 。。。んまいいか。

GitHub作成時、最長 3ヶ月になっていたので、3ヶ月後突然受信できなくなるかも?

無料は、やっぱり制限多いですー

今度、このブログ作っているサーバーに、Python環境を構築して、そこで時間指定で起動できるか調べてみます。

可能かどうかわかんないけど。。。

以上でこのテーマは終了といたします。m(_ _)m

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