Python Seleniumを使ったWEBスクレイピングをWindowsタスクスケジューラで定期実行する方法(完全ガイド)

Python Selenium

Python Seleniumを使い、Webページからのデータ取得を自動化させることは、業務の効率化に非常に有用です。
ただ、毎回手動で実行させるよりも、一定の時間に自動的に実行させるようにすれば、さらなる効率化を図ることが出来ます。​
例えば、毎日、株価情報を取得したり、管理サイトからデータをダウンロードするのを自動的に定期実行するようにするようなことは実務でよく行われます。
本記事では、Python SeleniumをWindowsタスクスケジューラを使って定期実行するやり方を丁寧に解説します。

タスクスケジューラの起動方法

タスクスケジューラはWindowsに標準搭載されており、簡単に起動できます。以下のいずれかの方法で開きます。

  • 方法1:ファイル名を指定して実行
  1. Windowsキー + R を押す。
  2. taskschd.msc と入力して Enterキー を押す。
  • 方法2:スタートメニューから開く
  1. スタートボタン をクリック。
  2. 検索バーに 「タスクスケジューラ」 と入力。
  3. 「タスクスケジューラ」 をクリック。

これで、タスクスケジューラの管理画面が開きます。

新しいタスクの作成

Pythonスクリプトを定期実行するために、新しいタスクを作成します。

  1. テスクスケジューラの右側にある「基本タスクの作成」をクリック

2.「名前」と「説明」を入力

管理しやすい名前を付けます。
例:Amazonスクレイピング定期実行
  入金明細データ定期取得
  等
説明は記載しなくても問題ありませんが、何か説明を付しておいた方がわかりやすければ入力します。
例:Amazonの価格情報を定期的に取得する
  〇〇の入金明細CSVデータを定期的にダウンロードする

3.「次へ」をクリック

トリガー(実行タイミング)の設定

タスクが実行されるタイミングを設定します。主に以下の選択肢があります。

トリガーの種類説明
毎日指定した時間に毎日実行
毎週指定した曜日に実行
毎月特定の日付に実行
1回限り指定日時に1回だけ実行
ログオン時ユーザーがログオンしたら実行
コンピューターの起動時Windows起動時に実行

例:毎日実行する設定

  1. 「毎日」 を選択し、「次へ」。
  2. 開始日 と 開始時間 を設定(例:毎朝8時)。
  3. 「次へ」 をクリック。

操作(Pythonスクリプトの実行)の設定

Pythonスクリプトを実行する設定を次の手順で行います。

「プログラムの開始」 を選択し、「次へ」

「プログラム/スクリプト」 の欄に Pythonの実行ファイルのパス を入力

Pythonの実行ファイルのパスを次の手順で確認し、「プログラム/スクリプト」 の欄にコピペします。

1.Windowsキー + R を押す。

2.cmd と入力して Enterキー を押す。

3.コマンドプロンプトが立ち上がりますので、「where python」と入力し、Enterキー を押す。

4.Pythonの実行ファイルのパスが表示されますので、そのパスをコピーします。

5.タスクスケジューラに戻り、「プログラム/スクリプト」 の欄に Pythonの実行ファイルのパス を入力

「引数の追加(オプション)」 の欄に 実行したいPythonスクリプトのファイル名を入力。

「引数の追加(オプション)」 の欄には、実行したいPythonファイル名を入力します。
今回実行したいファイルは、デスクトップの「Python WEBスクレイピング」というフォルダに保存している「main」という名前のPythonファイルとします。

この場合、「引数の追加(オプション)」の欄に「main.py」と入力します。

開始(オプション)の欄に 実行したいPythonスクリプトのフォルダパスを入力。

実行したいPythonファイルのフォルダパスを次の手順で確認し入力します。

1.実行したいPythonファイルが入っているフォルダを右クリックします。

2.「パスのコピー」をクリックします。

3.「引数の追加(オプション)」 の欄にCtrlキー + Vで貼り付けをします。

C:\Users\toshi\OneDrive\デスクトップ\Python WEBスクレイピング\


そして、「次へ」をクリックします。

最後に、「完了」をクリックします。
これで、タスクスケジューラの設定は完了です。

設定の詳細調整(オプション)

作成したタスクの動作をより安定させるために、追加の設定を行います。

管理者権限で実行

  1. タスクを 右クリック し、「プロパティ」 を開く。
  2. 「全般」タブで、「最上位の特権で実行する」 にチェックを入れる。
    • これにより、管理者権限が必要な処理も正常に実行できます。

エラー時の再試行設定

  1. 「設定」タブを開く。
  2. 「タスクが失敗した場合、再実行を試みる」 にチェックを入れる。
  3. 「間隔」を 1分 に設定。
  4. 「最大再試行回数」を 3回 に設定。

電源とネットワークの設定

  1. 「条件」タブを開く。
  2. 「コンピューターがAC電源で動作している場合のみタスクを開始する」 のチェックを外す(バッテリー駆動時も実行する場合)。
  3. 「ネットワーク接続が必要」 の設定を変更(必要に応じて)。

設定のテスト

作成したタスクが正常に動作するか確認します。

手順

  1. タスクスケジューラで作成したタスクを選択。
  2. 右クリック → 「実行」 をクリック。
  3. タスクが実行され、Pythonスクリプトが動作するか確認。

動作確認の方法

  • スクリプトの出力をファイルに記録する
    • スクリプトの中で print() を使用している場合、ログを確認するために出力をファイルに記録できます。
import datetime

with open("log.txt", "a") as f:
    f.write(f"スクリプトが実行されました: {datetime.datetime.now()}\n")
  • エラーログをチェック
    • 実行されない場合、タスクスケジューラの「履歴」タブを確認。
    • 「0x1」エラーが発生した場合、パスの設定ミスが原因の可能性あり。

その他の定期実行方法

参考に、タスクスケジューラ以外にも、Pythonスクリプトを定期実行する方法がありますので、ご紹介します。

Pythonの schedule ライブラリを使用

Python内でスケジュール管理する方法があります。

import schedule
import time

def my_job():
    print("スクリプト実行中...")

# 毎日10時に実行
schedule.every().day.at("10:00").do(my_job)

while True:
    schedule.run_pending()
    time.sleep(60)  # 1分ごとにチェック

メリット:

  • Pythonだけで設定可能。
  • 環境をまたいでも動作。

デメリット:

  • Pythonプロセスを常に起動しておく必要がある。

おわりに

Windowsのタスクスケジューラを使えば、Pythonスクリプトを簡単に自動実行できます。
Python SeleniumでWEBスクレイピングを行えるようになれば、このWindowsタスクスケジューラの設定をマスターし、実行も自動にすることでさらなる業務効率化を図りましょう!

    コメント

    タイトルとURLをコピーしました