記事公開日
最終更新日
Power Automate Desktop でWebスクレイピングしてみた ~PDFから表の抽出~

ケーススタディとして、毎月公表される最新版の資料を Windows のタスクスケジューラと Power Automate Desktop を使い、発表日に最新の PDF ファイルを取得し、一部の表を Excel に保存するというケースを試みてみたいと思います。
今回は総務省統計局の消費者物価指数(CPI)結果を対象としたいと思います。
1. 事前準備
Windows 10 に、Power Automate Desktop をインストールします。また、今回は Power Automate Desktop で、Edge を利用するため、Power Automate のブラウザー拡張機能をインストールして有効にする必要があります。インストール方法については、ここを参考にしてください。
2. フローの準備
Power Automate を起動し、「新しいフロー」を押下するとフローを作成する画面が開きます。ここで、今回作成するフロー名を指定して(今回は「Webスクレイピング」とします。)作成ボタンを押下します。しばらくするとアクションの編集画面が開きますので、この画面で今回のケーススタディのフローを作成していきましょう。

3. サブフローの準備
今後いろいろな Web ページからスクレイピングする可能性もあるので、1つのサイトから取得するデータをサブフローとして定義しましょう。サブフローから「新しいサブルーチン」を押下するとサブフローの追加画面が開きますので、ここでサブフロー名(今回は「CPI」とします。)を入力して保存ボタンを押下するとサブフローが作成されます。

4.サブフローの作成
ここから、サブフローに今回のケーススタディのアクションを追加していきましょう。サブフローの全体は下記のように設定します。

Edgeを起動して、消費者物価指数(CPI)結果の全国(最新の月次結果の概要)ページを開きます。下記図の右上赤枠の公表日が当日ならば、下の赤枠のPDFをダウンロードするようにします。

次にダウンロードしたPDFから「表1 総合、生鮮食品を除く総合、生鮮食品及びエネルギーを除く総合の指数及び前年同月比」の表をExcelのシートに書き込むようします。

PDFの表データはExcelインスタンスから下記のようにして取得できます。

その結果、下記のような表が取得できました。

5.Main フローの作成
有償ライセンスとなりますが、Power Automate でフローのスケジュール実行も可能です。ただ今回は、タスクスケジューラでの実装方法をご紹介します。
下記のようにWeb スクレイピングするサブフローをタスクスケジューラから実行できるように少し工夫してみたいと思います。
Main フローの全体は下記のように設定します。CPIという空ファイルが存在するまで待機して、存在したらWebスクレイピングのサブフローを実行して、最後にCPIファイルを削除して無限ループをするように設定しています。

6.タスクスケジューラからのフロー実行
Main フローでファイルを待機するようにしたので、下記のようにタスクスケジューラで毎日定時にファイルを作成するようにしてみたいと思います。

fsutil.exe を利用して空のファイル(ファイル名は「CPI」とします。)を作成するようにします。

タスクスケジューラの設定ができました。
これで毎日10時に新しいPDFが公表されていないか確認して、最新の消費者物価指数のデータをExcelの表として取得できるようになりました。
7.まとめ
今回のケーススタディを参考に、無料で利用できる Power Automate Desktop をぜひ活用してみてください。さらにPower BI を使えば、取得した消費者物価指数のデータと最新の売上データを比較するなどデータ分析に利用できます。このように公開されているデータをうまく活用して、企業のDX推進に生かしてみてはいかがでしょうか。他にも Power Automate Desktop に関する Blog を掲載しております。ご興味があればご覧ください。
QESでは、現在 Power Platform に力を入れて取り組んでいます。
Power Platform の導入や Power Apps によるアプリケーション開発も行っていますので、お困りの際はぜひお問い合わせください。
また、Microsoft製品やAWS製品に関するソリューションに取り組んでおります。
他プロダクトに関するブログも投稿しておりますので、下記のリンクから是非ご覧ください。
また、QESでは採用活動を強化しております。
ブログを読んで弊社の業務内容に興味を持っていただけましたら、採用情報にもお目通しいただければ幸いです。
https://www.qes.co.jp/recruit.htm