Pythonを使ってお気に入りサイトのRSSを取得する➂ バッチファイルで自動処理
前回、以下機能を実装したPythonのプログラムを作成しました。
今回は作成したプログラムを、PCを自動起動して自動処理してくれるようにしてきたいと思います。
・複数サイトのRSSフィードを取得
・欲しいキーワードがタイトルかサマリ(記事の要約)に含まれるものを
絞り込んで中間データを作成
・CSVファイルに保存
※CSVファイルが既にある場合は、保存記事との重複を確認し、
不要データは削除
1. バッチファイルを作成する
コマンドプロンプト上で実行できる処理をまとめて、バッチプログラムとして作成することが可能です。
今回用意するプログラムは以下の通りです。
cd (作成したpythonファイルが存在するフォルダパス)
Python ファイル名.py
たったこれだけです。
これをテキストファイル(メモ帳)に記述し、保存時に拡張子を.batとして保存してください。
例えば、僕の場合ですと以下のように記載しました。
cdは、チェンジディレクトリといって、ざっくりいうとフォルダ移動です。
ファイル実行について、pythonと前書きして、ファイル名を記載します。
なお、拡張子を.batとすると・・・、ファイルアイコンは以下のようになると思います。(歯車のアイコン)
一度、試しにコマンドプロンプトでcdコマンド、とPythonのファイル実行をしていただければと思います。
また、実際にbatファイルを作成して、実行してみてください。
2. PCの自動起動
WindowsにはBIOS(バイオス)というものがあり、ざっくりいうとOS(オペレーティングシステム)自体が起動する前に、CPU・デバイスの管理・制御を行うためのものです。
PCによって起動方法は違うので、ご自分の機種でどうBIOSを起動するかを確認してみてください。
私の場合は、起動時にF2(ファンクションキー)を押下することで、BIOSが起動します。
起動しましたら、私の場合はDELLを使っており、BIOSの中のPower Management 内のAutoOnで時間設定をします。
・参考(DELLのサポートページより)
上記、Power Management内に存在
3. タスクマネージャでのバッチファイル起動
これで、「PC電源を起動」→ 「バッチファイルを起動」→「(バッチ処理)Pythonファイルがあるフォルダに移動」→ 「(バッチ処理)プログラム実行」まで揃いました。
但し、自動化であれば、「PC電源を起動」→「自動でバッチファイルを起動」→「(バッチ処理)Pythonファイルがあるフォルダに移動」→ 「(バッチ処理)プログラム実行」→「PCシャットダウン」としたところです。
「自動でバッチファイルを起動」については、Windowsのタスクスケジューラを利用することで対応可能です。
(1) タスクスケジューラーの設定方法
PCのタスクスケジューラアプリを起動します。
(2) タスク作成方法について
タスクスケジューラライブラリを選択し、タスクの作成を選択します。
タスクの作成をすると、ポップアップで以下のような表示がされると思います。この全般・トリガー・操作・条件等を定義することで対応が可能です。
今回のRSSフィード取得については、以下のように私は設定しています。
・全般
・トリガー
・操作 (2つ目のプログラムについては後述します)
・条件
・設定
(3) 自動シャットダウンについて
上記の操作タブにて、2行目にあるprogram_end.batについて補足します。
コマンドプロンプトでシャットダウンを行う方法があり、それをバッチファイルに記述したものとなります。
コマンドは以下のとおりです。
shutdown -s -t (シャットダウンまでの秒数)
これを同様にテキストファイルに記述し、拡張子を.batに変更すればOKです。
4. 実行履歴の確認
先ほどのタスクスケジューラーライブラリの履歴タブで、実行結果等の確認が可能です。
なお、私は基本PCを夜いじってることが多いので、BIOSでのPC自動起動を23:00に実施。その後、タスクスケジューラーで、23:05にRSSフィード取得のPythonプログラムのバッチ起動と、PC起動後20分でPC自動電源オフのバッチ起動をするようにしています。
自宅におらず、23:00を迎えた場合は勝手に立ち上がってRSSフィードを取得してくれるイメージです。(PC使ってる時も、23:20頃にはRSSフィード取得してPCシャットダウンされるイメージです)
是非、ご自身で色々と応用してみてください。