LoginSignup
2

More than 1 year has passed since last update.

posted at

updated at

Pythonで大学の未開始の課題をLineに通知させてみた・・・!

概要/理由

・ Pythonで自分の大学の課題サイトをスクレイピングをして、未開始の課題を収集しLineに通知させることをしました。
・理由:最近、スクレイピングにハマり、これを自分の日常に役立つものに生かしたいなと考えた。大学の課題が多すぎて、提出し忘れることがあるのでやっていない課題を知らせてくれると便利だなと考え作ってみた。
・ソースコードはこちら

全体の流れ

  1. Dockerで環境構築
  2. スクレイピングコードをかく
  3. Line NotifyでLineに通知
  4. AWS Lambdaにデプロイし定期実行させる

使ったもの・ライブラリー等

  • Python のライブラリー
    • selenium
    • Beautifulsoup4
    • requests
  • その他
    • Docker
    • python3.6
    • Line notify
    • AWS Lambda

詳細な流れ

①環境構築

Dockerで環境構築するのだが、Lamdaにデプロイすることを考え、serverless-chromeを使った。
環境構築はこちらが参考になった。
Dockerに
・severless-chrome
・chromedriver
requirements.txtに
・selenium
・Beautifulsoup4
・requests 
を書いていく。
そしてDockerイメージを作成

②スクレイピングコードをかく

大まかな流れは、
seleniumでログイン→課題ページのURLを取得
その後、課題ページの一覧から「期限が来てない&未開始になっている」課題を収集

③Line Notify

Line Notifyの使い方はこちらの記事を参考にしました。
登録して、数行コードを書くだけなので簡単です。

④AWS Lambdaにデプロイ&定期実行

大まかな流れはこちらをそのまま使わせていただきました。
・コードのフォルダーをS3にアップロード
・Lambda関数の作成
・環境変数を設定する。
・テストを作成し、Lineに通知されることを確認。
・LambdaからトリガーにAmazon CloudWatch Eventsを追加させ、定期実行させる。完成!課題多ない・・・
79530.jpg

感想・今後に・・・

・思っていたよりLineやAWSとの連携が簡単だったので今後も使っていきたいですね。
・PDFのダウンロードの自動化にも挑戦したい!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2