Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで作るWebサイトアラーム!指定時刻に自動でページを開く方法

はじめに

この記事では、Pythonを使って「Webサイトアラーム」を作成する方法を解説します。あらかじめURLと時刻を指定しておくと、システムの時刻がその瞬間に達したとき、自動的にブラウザで目的のWebページを開いてくれるシンプルな仕組みです。

課題の概要

WebサイトのURLと時刻を入力として受け取り、システム時刻が指定時刻に達したタイミングで、ブラウザ上に該当するWebページを表示します。

ブックマークには日々利用するさまざまなWebページを保存できますが、「毎日決まった時刻に特定のページを開いて作業したい」という場面は少なくありません。たとえば、朝会の資料ページや業務システムへのログイン画面などです。そんなとき、この種のWebサイトアラームを設定しておけば、開き忘れを防ぎ、作業をスムーズに始められます。

本実装では、Pythonの標準ライブラリであるsyswebbrowsertimeの3つのモジュールのみを使用します。追加パッケージのインストールは一切不要です。

指定時刻にWebページを開く手順

  1. 開きたいWebページのURLを取得します。
  2. Webページを開く時刻を指定します。
  3. 現在時刻が指定時刻と一致しているかどうかを判定します。
    • 一致していればWebページを開きます。一致していなければ1秒間待機します。
    • 時刻が一致するまで、この確認処理を毎秒繰り返します。
  4. 処理を終了します。

サンプルコード

import time
import webbrowser
import sys

def web_alarm(url, alarm_time):
    current_time = time.strftime('%I:%M:%S')
    while current_time != alarm_time:      # 現在時刻とアラーム時刻を照合
        print('Current time is: ' + current_time)
        current_time = time.strftime('%I:%M:%S')
        time.sleep(1)                      # 1秒待機
    if current_time == alarm_time:         # 時刻が一致したらブラウザを起動
        print('Opening the ' + url + ' now...')
        webbrowser.open(url)

web_alarm(sys.argv[1], sys.argv[2])        # URLと時刻を指定してアラームを設定

コードのポイント

  • time.strftime('%I:%M:%S')は、12時間制で「時:分:秒」形式の現在時刻を取得します。24時間制で扱いたい場合は%H:%M:%Sに変更してください。
  • sys.argv[1]sys.argv[2]により、コマンドライン引数からURLとアラーム時刻を受け取ります。
  • time.sleep(1)で1秒ごとに時刻を再チェックするため、CPUへの負荷を最小限に抑えられます。

実行方法と実行結果

ターミナルから次のように実行します。第1引数にURL、第2引数にアラーム時刻を指定します。

$ python3 web_alarm.py https://www.tutorialspoint.com/ 02:01:00
Current time is: 02:00:46
Current time is: 02:00:47
Current time is: 02:00:48
...(中略)...
Current time is: 02:00:59
Opening the https://www.tutorialspoint.com/ now...
$

指定時刻(02:01:00)に達すると「Opening the ... now...」というメッセージが表示され、既定のブラウザで該当ページが自動的に開きます。

まとめ

標準ライブラリだけで約15行のコードを実装するだけで、指定時刻にWebページを自動的に開くアラームが完成します。複数のURLをリストで管理したり、曜日ごとに異なるページを開くよう拡張したりすることも容易なので、日常の定型作業の自動化にぜひ活用してみてください。

  1. Pythonで作るWebサイトブロッカー ― 業務時間中にSNSへのアクセスを自動遮断する方法

    大手IT企業で働いたことがある方なら、FacebookやYouTube、InstagramといったSNS系のWebサイトが社内からアクセスできないよう制限されていることに気づいた経験があるかもしれません。こうした制限は、サードパーティ製アプリに頼らなくても実現できます。自分専用のオリジナルツールを作れば、好きなWebサイトを自由にブロックできるのです。しかもPythonでWebサイトブロッカーを開発するのは、それほど難しいことではありません。この記事では、指定したWebサイトをブロックするPythonスクリプトの作り方を解説します。前提条件Python 3.x がインストールされていることPy

  2. PythonでWordCloud(ワードクラウド)を作成する方法

    このチュートリアルでは、テキストファイルとマスク画像を用意し、そこからワードクラウド(Word Cloud)を生成して png 形式の画像として保存するプログラムをPythonで作成します。 この処理を実装するには、以下のPythonライブラリが必要です。 ・matplotlib ・wordcloud ・numpy ・tkinter ・PIL ライブラリのセットアップ まず、必要なライブラリを次のコマンドでインストールします。 $ sudo pip3 install matplotlib $ sudo pip3 install wordcloud $ sudo apt-get install