pythonで解答速報をLINE通知で受け取る方法|面倒な検索から解放される便利な仕組み
試験のあと、「早く解答速報を知りたい!」と思っても、何度もサイトを検索するのは本当に大変ですよね。そんなときに便利なのが、Pythonを使ってLINEに解答速報を自動通知してくれる仕組みです。これなら、自分で何度も調べにいかなくても、速報が届くので安心です。今回は、初心者の方にもわかりやすく、その仕組みと設定方法をご紹介します。
LINE通知で解答速報を受け取るメリット
- 速報が公開された瞬間にスマホで通知が届くので、見逃さない
- 何度も検索しなくて済むので時間と労力を節約できる
- 自動化することで、試験後の不安やストレスを軽減できる
Python+LINE Notifyを使った自動通知の基本の流れ
LINE Notifyのトークンを取得する LINE NotifyはLINEアプリにメッセージを送るための公式サービスです。まずは公式サイトでトークン(アクセストークン)を取得しましょう。これは通知を送るためのパスワードのようなものです。
Pythonで解答速報の情報を取得するプログラムを書く 試験の公式サイトや速報ページの情報をWebスクレイピングやAPIで定期的にチェックします。更新があれば次のステップへ。
LINE Notify APIに通知を送る 速報が更新されたら、PythonからLINE Notify APIを使って自分のLINEにメッセージを送信します。
簡単なPythonコード例
import requests LINE_NOTIFY_TOKEN = 'あなたのLINE Notifyアクセストークンをここに入力' def send_line_notify(message): url = "https://notify-api.line.me/api/notify" headers = {"Authorization": f"Bearer {LINE_NOTIFY_TOKEN}"} data = {"message": message} response = requests.post(url, headers=headers, data=data) return response.status_code # ここでは例として速報更新を検知したら通知を送る想定 message = "【速報】解答速報が公開されました!公式サイトをチェックしてください。" status = send_line_notify(message) if status == 200: print("通知を送信しました!") else: print("通知の送信に失敗しました。")
本格的なPythonコード例|解答速報の更新チェック+LINE通知自動化
以下は、指定したURLのページ内容を定期的にチェックし、前回と内容が変わったらLINE通知を送る例です。ファイルで前回の状態を保存して比較します。
import requests import time import os LINE_NOTIFY_TOKEN = 'あなたのLINE Notifyアクセストークンをここに入力' CHECK_URL = 'https://example.com/kaitousokuho' # 解答速報のページURL CACHE_FILE = 'last_content.txt' CHECK_INTERVAL = 3600 # チェック間隔(秒)=1時間 def send_line_notify(message): url = "https://notify-api.line.me/api/notify" headers = {"Authorization": f"Bearer {LINE_NOTIFY_TOKEN}"} data = {"message": message} response = requests.post(url, headers=headers, data=data) return response.status_code == 200 def fetch_page(): try: response = requests.get(CHECK_URL, timeout=10) response.raise_for_status() return response.text except Exception as e: print(f"ページ取得エラー: {e}") return None def load_last_content(): if not os.path.exists(CACHE_FILE): return None with open(CACHE_FILE, 'r', encoding='utf-8') as f: return f.read() def save_last_content(content): with open(CACHE_FILE, 'w', encoding='utf-8') as f: f.write(content) def main(): print("解答速報の更新チェックを開始します。") while True: current_content = fetch_page() if current_content is None: print("ページ取得に失敗しました。次回まで待機します。") else: last_content = load_last_content() if last_content != current_content: print("更新を検知しました。LINEに通知を送信します。") message = f"【速報】解答速報ページが更新されました!\n{CHECK_URL}" if send_line_notify(message): print("通知送信成功。") save_last_content(current_content) else: print("通知送信失敗。") else: print("更新はありません。") time.sleep(CHECK_INTERVAL) if __name__ == '__main__': main()
よくある質問(FAQ)
Q1: LINE Notifyのアクセストークンはどうやって取得しますか? A1: LINE Notifyの公式サイト(https://notify-bot.line.me/ja/)にアクセスし、LINEアカウントでログイン後、「マイページ」から「トークンを発行する」を選びます。通知を送りたいトークルーム(1対1トークなど)を選び、トークン名を入力して発行してください。発行されたトークンはPythonプログラムに貼り付けて使います。
Q2: Pythonのプログラムはどこで実行すれば良いですか? A2: Windowsなら「タスクスケジューラ」、MacやLinuxなら「cron」などのスケジューラーを使って、定期的にプログラムを実行できます。初心者の方はまずPC上で手動で動かして動作確認を行い、その後スケジューラーの設定に挑戦すると良いでしょう。
Q3: 解答速報の情報はどのように取得すればいいですか? A3: 試験の公式サイトや予備校の速報ページからスクレイピング(HTML解析)する方法が一般的です。APIがあればAPI利用も可能です。ただし、スクレイピングはサイトの利用規約を守り、アクセス頻度を控えめにしましょう。
Q4: 通知が届かない場合の原因は? A4: 主な原因はアクセストークンの誤り、ネットワーク障害、LINE Notifyのサービス障害、プログラムの不具合などが考えられます。トークンが正しいか再確認し、プログラムのログやエラーメッセージをチェックしてください。
Q5: どのくらいの頻度で速報チェックすれば良いですか? A5: 試験速報は数時間以内に公開されることが多いので、30分〜1時間ごとのチェックがおすすめです。ただし、サイトに過剰アクセスしないように注意しましょう。
Q6: プログラミング初心者ですが挑戦できますか? A6: はい、LINE Notifyのトークン取得もPythonの通知コードも比較的シンプルなので、初心者でも始めやすいです。ネット上に多くの解説やサンプルコードがあるので、参考にしながら少しずつ進めてみてください。
まとめ
PythonとLINE Notifyを組み合わせると、解答速報を自動でLINEに受け取ることができて、何度も検索する手間や不安を大幅に減らせます。初歩的なコードから本格的な監視スクリプトまで、自分の環境やニーズに合わせて選べます。ぜひ挑戦して、試験後の速報チェックを楽にしてみてくださいね。