ゴリラからの逃走

意識が高いだけで何もできなかった頃(=ゴリラ)から変わるために日々行なっていることを書いています。

【面倒なことはPythonに】朝イチの作業で使用するWebページを、指定時間にまとめて開く

練習問題の次のステップを相談した時に、「基礎操作のモジュールを使いながら身の回りの自動化ツールを作る」が良いかもとなったので、簡単なものから自動化スクリプトを作成してみる。
今回はその第一弾。

今回実施したいこと

  • 毎日決まった時間に特定のページを開く

作りたい背景

  • 毎朝ルーティンで実施している日記、ブラインドタッチ練習のwebページを毎回開くのめんどい
    →自動で開くことで、手間をなくしたい
  • Bookmarkから選ぶアクションだと、他のSNSなどに目がいくことがある
    →その時間に対応すべきページがすでに開かれている状態にして他に目がいきにくくしたい

必要な機能

  • webページを開く
  • 任意の時間、かつ繰り返し実行する設定をする
  • 必要なくなったら止める

実施

webページを開く

こちらを参考にしつつ進める。

tonari-it.com

標準ライブラリに含まれるwebbrowserモジュールを使用すると、簡単にwebサイトを開ける。
実際に開く処理にはwebbrowser.open()を使用する。

import webbrowser

webbrowser.open("https://tonari-it.com/python-webbrowser-open/")

任意の時間に、かつ繰り返し実行する設定をする

scheduleライブラリが使えそうだったので、ダウンロード。

$ pip install schedule

例えば、3分ごとに表示されるようにして実行してみる。

import webbrowser, schedule, time

def job():
    webbrowser.open("https://tonari-it.com/python-webbrowser-open/")

def main():
    schedule.every(3).minutes.do(job)

    while True:
        schedule.run_pending()
        time.sleep(60)
main()

whileのループで実行を一定時間sleepした後、再度チェック。実行できる時間になれば対応。

■メモ
time.sleep(~)をループさせるだけでも実行できそうだけど、それじゃだめなんだろうか。タスク実行→sleepで時間がずれていくから特定の時間のアクションを担保できないって部分はありそう。

必要なくなったら止める

と、実行できたのはいいんだが、止め方が分からなくなった。。

こちらにあるようにpsでプロセスIDが出てきたので、killから削除できた。

manareki.com

上記に、後は必要なURLと起動させたい時間を設定すれば完了。
朝一で表示したいページをセットにして、以下で朝6時に一度に表示されるようにした。

schedule.every().day.at("06:00").do(job)