こんにちは、ゆんつです。
僕はPythonで作った拙いプログラムで、自分が欲しい情報が記載されているWEBサイトのスクレイピングをしています。
スクレイピングの頻度は週1回で、週末にその週の情報を一括して取得するような感じです。
これまでは、そのスクレイピングのプログラムを週末に手動で動かしていました。
でも、できればその週一回のプログラムの起動も自分でやらずに自動化したいのが人情というものです。
調べてみるとWindowsの機能である「タスクスケジューラー」を使うことで、定期的にPythonのプログラムを自動実行させることができるみたいです。
というわけで、今日は
「タスクスケジューラー」を使って、定期的にPythonのプログラムを自動実行する
に挑戦してみたいと思います。
タスクスケジューラーでプログラムを自動実行させる
まずは、プログラムの一覧から「タスクスケジューラー」をクリック。
タスクスケジューラーが起動しました。
メニューバーから「操作」⇒「基本タスクの作成」をクリック。
「基本タスクの作成」ウィンドウが開きます。
タスクの名前(この名前がタスクスケジューラーの一覧に表示されることになる)、そのタスクに関する説明を入力して「次へ」をクリック。
続いて「タスクトリガー」という画面になるので、タスクのスケジュールを設定します。
僕の場合は週に1回実行したいので「毎週」を選択して「次へ」をクリック。
タスクの開始日時と間隔、曜日を入力する画面になります。
僕は、毎週日曜日の21時にタスクを起動したいので開始日時をそのように入力し、「間隔」は毎週なので1、「曜日」は日曜日にチェックを入れて「次へ」をクリック。
操作画面になるので、タスクでどの操作を実行したいかを選択して「次へ」をクリック。
「プログラムの開始」画面になります。
僕はPythonのプログラムを自動実行したいので
- 「プログラム/スクリプト」にはpython本体の実行ファイル(python.exe)のパスを入力
- 「引数の追加」には実行したいpythonのファイル名を入力
- 「開始(オプション)」には実行するプログラムが置かれているフォルダまでのパスを入力
全て設定したら「次へ」をクリック。
「要約」画面になり、これまでの設定内容が表示されるので確認して「完了」をクリック。
タスクスケジューラーに作成したタスクが追加されました!
これで、毎週日曜日の21:00になればプログラムが自動実行されるはずです!
スリープ時にも実行されるようにする
日曜日の21:00にパソコンがスリープ状態になっていてもタスクは実行されるようにしたいと思います。
タスクの一覧から作成したタスクをダブルクリック。
作成したタスクのプロパティ画面になるので、「条件」タブをクリックし「タスクを実行するためにスリープを解除する」にチェックを入れて「OK」をクリック。
これで、パソコンがスリープになっていてもタスクが実行されるようになったはずです。
無事実行されました
タスクスケジューラーでタスクを設定して迎えた最初の日曜日の21:00。
無事にプログラムが起動し、きちんと情報収集ができていました!
また、翌週はあえて21:00前にパソコンをスリープにしてみたところ、きちんと21:00にプログラムが実行されました。
これで、僕はもう何もしなくてよくなりました(笑)
もし、定期的に同じプログラムを実行する場合。
タスクスケジューラにタスクを設定すると、実行の手間が省けるかもしれませんよ。
それでは、またー。