可能性の探索~WebClass更新の通知~
【考えたこと】
WebClassの課題が更新される度にパソコンのデスクトップやメールに通知が来る仕組みがあったらいいなと考えた。
【作成したコード】
- from bs4 import BeautifulSoup
- from chardet import detect
- import requests
- from sqlalchemy import false
- def detect_updates():
- url = 'https://kulms.kanagawa-u.ac.jp/webclass/' #WebClassのURL
- res = requests.get(url)
- soup = BeautifulSoup(res.text,'html.parser') #HTMLを解析
-
- new_elem=str(soup.select('course-contents-info')) #CSSセレクタ(CSSを指定する際に書く要素の指定の方法)ここでは「締切りが近い課題があります」を指定した
-
- #strを使ってテキストに直している
- try:
- with open('old_elem.txt') as f: #以前に検知したテキストを保存
- old_elem = f.read()
- except:
- old_elem = ''
- old_elem
- if new_elem ==old_elem: #
- print('変化なし')
- return False
- else:
- with open('old_elem.txt','w') as f: # w(更新されたらold_elem.textに書き込む)
- f.write(new_elem)
- print('締切りが近い課題があります')
- return True
- detect_updates()
【実行してみると...】
プログラムを実行する度、「締切りが近い課題があります」または「変化なし」と表示される仕組みを作りたかった。
しかし、 何度試してみても「変化なし」としか表示されず、「締切りが近い課題が近い課題があります」という表示はされなかった。
old_elem.textというファイルに以前のテキスト情報を書き込み、新しいテキスト情報と比較するプログラムを書いたつもりだったが、上手く書き込まれていなかった。
それが表示の問題の原因だと考えた。
【定期実行、通知について】
私たちが考えたことを実現化するには、プログラムを定期実行し、その結果をラインへ通知するプログラムを作成する必要があるようだったが、今回はその前のステップが上手く行かず、次に進めなかった。