タスクスケジューラーを使って、定期的にプログラムを自動実行する

こんにちは、ゆんつです。

僕はPythonで作った拙いプログラムで、自分が欲しい情報が記載されているWEBサイトのスクレイピングをしています。

スクレイピングの頻度は週1回で、週末にその週の情報を一括して取得するような感じです。

これまでは、そのスクレイピングのプログラムを週末に手動で動かしていました。

でも、できればその週一回のプログラムの起動も自分でやらずに自動化したいのが人情というものです。

調べてみるとWindowsの機能である「タスクスケジューラー」を使うことで、定期的にPythonのプログラムを自動実行させることができるみたいです。

というわけで、今日は

「タスクスケジューラー」を使って、定期的にPythonのプログラムを自動実行する

に挑戦してみたいと思います。

タスクスケジューラーでプログラムを自動実行させる

まずは、プログラムの一覧から「タスクスケジューラー」をクリック。

プログラムの一覧から「タスクスケジューラー」をクリック

タスクスケジューラーが起動しました。

タスクスケジューラー起動画面

メニューバーから「操作」⇒「基本タスクの作成」をクリック。

メニューバーから「操作」⇒「基本タスクの作成」をクリック

「基本タスクの作成」ウィンドウが開きます。

「基本タスクの作成」ウィンドウ

タスクの名前(この名前がタスクスケジューラーの一覧に表示されることになる)、そのタスクに関する説明を入力して「次へ」をクリック。

タスクの名前とタスクに関する説明を入力して「次へ」をクリック
名前欄に入力したものが一覧で表示されるタスクの名前になる

続いて「タスクトリガー」という画面になるので、タスクのスケジュールを設定します。

タスクトリガー画面でタスクのスケジュールを設定する

僕の場合は週に1回実行したいので「毎週」を選択して「次へ」をクリック。

週に1回実行したい場合は「毎週」を選択して「次へ」をクリック

タスクの開始日時と間隔、曜日を入力する画面になります。

タスクの開始日時と間隔、曜日を入力て「次へ」をクリック

僕は、毎週日曜日の21時にタスクを起動したいので開始日時をそのように入力し、「間隔」は毎週なので1、「曜日」は日曜日にチェックを入れて「次へ」をクリック。

操作画面になるので、タスクでどの操作を実行したいかを選択して「次へ」をクリック。

操作画面で、どの操作を実行したいかを選択して「次へ」をクリック
ゆんつ
僕はプログラムを実行したいので、「プログラムの開始」です!

「プログラムの開始」画面になります。

「プログラムの開始」画面

僕はPythonのプログラムを自動実行したいので

  • 「プログラム/スクリプト」にはpython本体の実行ファイル(python.exe)のパスを入力
  • 「引数の追加」には実行したいpythonのファイル名を入力
  • 「開始(オプション)」には実行するプログラムが置かれているフォルダまでのパスを入力

全て設定したら「次へ」をクリック。

全て設定したら「次へ」をクリック

「要約」画面になり、これまでの設定内容が表示されるので確認して「完了」をクリック。

「要約」画面で、これまでの設定内容を確認して「完了」をクリック

タスクスケジューラーに作成したタスクが追加されました!

タスクスケジューラーに作成したタスクが追加された!

これで、毎週日曜日の21:00になればプログラムが自動実行されるはずです!

スリープ時にも実行されるようにする

日曜日の21:00にパソコンがスリープ状態になっていてもタスクは実行されるようにしたいと思います。

タスクの一覧から作成したタスクをダブルクリック。

タスクの一覧から作成したタスクをダブルクリック

作成したタスクのプロパティ画面になるので、「条件」タブをクリックし「タスクを実行するためにスリープを解除する」にチェックを入れて「OK」をクリック。

「条件」タブをクリックし「タスクを実行するためにスリープを解除する」にチェックを入れて「OK」をクリック

これで、パソコンがスリープになっていてもタスクが実行されるようになったはずです。

無事実行されました

タスクスケジューラーでタスクを設定して迎えた最初の日曜日の21:00。

無事にプログラムが起動し、きちんと情報収集ができていました

また、翌週はあえて21:00前にパソコンをスリープにしてみたところ、きちんと21:00にプログラムが実行されました。

これで、僕はもう何もしなくてよくなりました(笑)

ゆんつ
やったぜ!

もし、定期的に同じプログラムを実行する場合。

タスクスケジューラにタスクを設定すると、実行の手間が省けるかもしれませんよ。

それでは、またー。