Windows 10環境で利用可能な無料のRPA(プロセス自動化)ツール「Power Automate Desktop」の配布が開始されています。
最近ではノーコーディングやローコーディングなどとも呼ばれ、プログラミング知識が不要でパソコン処理の自動化などができるとのことで注目されているツールのひとつです。
これまでのRPAツールは有償で提供されているものも多くありますが、この「Power Automate Desktop」は無償で提供されており、またマイクロソフト社純正のアプリケーションとのことで、Windows 10デスクトップ環境での作業自動化においては特に制限もなく簡単に導入して利用することが可能です。
今回この「Power Automate Desktop」をインストールして、簡単なWebサイトの情報取得(スクレイピング)を試してみたので作業の流れをご紹介したいと思います。
Power Automate Desktopのインストール
Power Automate Desktopの配布サイトにアクセスします。
→ Power Automate Desktop | Microsoft Power Automate
[無料でダウンロードする] リンクをクリックし、exeファイルをダウンロードします。
ダウンロードが完了したら、ダウンロードした [Setup.Microsoft.PowerAutomateDesktop.exe] アイコンをダブルクリックします。
「Power Automate Desktop」セットアップ画面が表示されます。[次へ] をクリックします。
「[インストール] を選択すると、Microsoft の使用条件に同意したことになります。」のチェックボックスをクリックしてオンにし、[インストール] をクリックします。
インストールが進行します。
「インストール成功」の画面が表示されたら、ここでブラウザの拡張機能のインストールを進めます。
RPAツールによる自動化の多くのケースではブラウザの自動操作を行うことが多いと思われますが、Power Automateでブラウザ操作を行う場合、この拡張機能を通じでデータの取得などが行われます。
Google ChromeおよびMicrosoft Edge向けの拡張機能が用意されていますので、いずれか利用可能なほうの拡張機能をインストールしてください。
ここでは例としてGoogle Chrome向けの拡張機能をインストールします。[Google Chrome] のリンクをクリックします。
Google Chromeが起動し、chromeウェブストアの拡張機能ページが表示されます。[Chrome に追加] ボタンをクリックし、次に表示された確認画面で [拡張機能を追加] ボタンをクリックします。
「インストール成功」の画面に戻り、[Power Automate Desktop の起動] ボタンをクリックします。
「Microsoft Power Automate Desktop にサインインする」画面が表示されます。[サインイン] ボタンをクリックします。
「メール アドレス」ボックスにメールアドレスを入力し、[サインイン] ボタンをクリックします。
マイクロソフトアカウントが登録済みの場合、アカウント選択画面が表示されます。ここでは例として既存のアカウントを選択して進みます。もしマイクロソフトアカウントをお持ちでない場合はアカウントを新規取得して先に進みます。
マイクロソフトアカウントへのサインインが完了すると「Microsoft Power Automate Desktop」のメイン画面が表示されます。
以上で初回のセットアップは完了です。
Microsoft Power Automate Desktopによるフロー作成の基本的な流れ
Microsoft Power Automate Desktopを使ったフロー作成の基本的な流れや画面構成についてざっくり解説します。
Microsoft Power Automate Desktopのフロー
Microsoft Power Automate Desktopでは、作成した自動処理は「フロー」と呼ばれています。
また、自動処理を行うための操作の単位は「アクション」と呼ばれており、ひとつのフローは複数のアクションが組み合わされて成り立っています。
また、複雑な処理を効率的に管理、編集するために、複数のアクションをまとめて管理する「サブフロー」をフローの中に複数作ることもできるようになっています。(初めに作られるmainフローもサブフローのうちのひとつです)
また、作成したフローはファイルとして保存することができ、切り替えて呼び出すことなどが可能です。
フローの作成
以下はフローの作成画面の例です。起動直後の画面で [+ 新しいフロー] ボタンをクリックします。
「フロー名」ボックスに名前を入力し [作成] ボタンをクリックします。
フローの作成画面が表示されます。
フロー作成画面について
フロー作成画面ですが、大きく3つのエリアで構成されています。
まず、画面左の「アクション」エリア(①)に自動で行うことができる操作が一覧化されています。
このアクションには [Webページからデータを抽出する]、[Excel ワークシートに書き込み]、[メールの送信] のようにアプリケーションを指定して操作するもののほか、[マウスの移動]、[キーの送信] など、PCの画面をそのまま自動操縦するような機能、条件分岐や繰り返しなどの処理などの制御、日付や時刻の取得、テキストの加工や数値の計算などのデータ処理など、自動化の命令にあたる項目が多数含まれています。
この「アクション」にある各項目をダブルクリックすると、登録に必要な追加設定の画面が表示されます。以下はブラウザを自動的に起動する「新しい Chrome を起動する」アクションの設定画面の例です。
ブラウザからWebページを読み取る際はページの読み込みに時間がかかってしまったり、ユーザーのログインなどの状況によって内容が変化するような可能性がありますが、設定画面ではそのような動作の状況に応じた処理方法や事前の設定などを定めておくことが可能です。
この設定画面で [保存] をクリックすることで、自動操作の項目が保存され、画面中央のリスト(②)に登録されます。
この画面中央のリスト(②)がいわゆるプログラムの構文の代わりとなる自動処理のリストで、このリストを並び替えたり、各項目の設定内容を調整したりすることによって、より正確に思い通りの自動操作を行うことができるようになります。
また、画面右(③)には変数の一覧が表示されます。これはフローの中で利用することができるデータのリストで、ここから変数の内容の確認や使用箇所の検索を行うことができます。
変数について
アクションで取得したデータは任意の名前を付けて自動処理の中で再利用することができます。例えばWebサイトをスクレイピングする場合、Webサイトの中に表示されている項目を取り出し、Excelなどのファイルに張り付ける必要があります。
このとき、おおまかなアクションは「Webサイトから “ある項目” を取り出す」と「“ある項目” をExcelで保存する」という2つの内容になりますが、ここで共通する “ある項目” を受け渡すために使われるのが「変数(フロー変数)」です。
Microsoft Power Automate Desktopでは、前述のような自動化でよく使われる数々の “ある項目” が自動的に変数として保存され、簡単に再利用ができるようになっています。
Microsoft Power Automate Desktopを使ってWebスクレイピングを試す
Microsoft Power Automate Desktopを使って、Webサイトの情報を自動的に取得する(スクレイピング)サンプルフローを作成してみます。
ここでは例として、じゃん検索サイトのニンテンドースイッチのページから、取得日時と最安値価格を記録するフローを作成します。
サンプルフロー
先に完成形のリストを掲載しておきます。全部で7アクションのフローで構成されています。
フロー項目詳細
アクション名 | パラメータ/詳細 | |
1 | 新しい Chrome を起動する | Chrome を起動して、'https://jansearch.cravelweb.com/detail/4902370542912' に移動し、インスタンスを Browser に保存します |
2 | Web ページ上の要素の詳細を取得します | Web ページ上の UI 要素 <td> '\29,880(税込) 発売前' の属性 'Own Text' を取得します |
3 | 現在の日時を取得します | 現在の日時を取得して、CurrentDateTime に保存します |
4 | 新しいリストの作成 | 新しいリストを作成して List に保存 |
5 | 項目をリストに追加 | 項目 CurrentDateTime をリスト List に追加 |
6 | 項目をリストに追加 | 項目 LowerPrice をリスト List に追加 |
7 | CSV ファイルに書き込みます | CSV テーブル List をファイル 'c:\test\kakaku.csv' に書き込みます |
各アクションの登録手順
各アクションの登録は、画面左のアクションから登録したい項目を探してダブルクリックし、詳細の項目などを入力してから [保存] をクリックします。
以下では各アクションの登録のポイントになる部分をピックアップして解説しています。特に説明が無い部分はデフォルトの設定のまま登録を進めれば問題ありません。
1. 新しい Chrome を起動する
アクション一覧の「Web オートメーション」にある「新しい Chrome を起動する」をダブルクリックします。
「起動モード」ボックスの [新しいインスタンスを起動する] を選択し、「初期 URL」に「https://jansearch.cravelweb.com/detail/4902370542912
」と入力して [保存] をクリックします。これにより、指定したURLが新しいブラウザウィンドウで起動します。
2. Web ページ上の要素の詳細を取得します
ここでは、はじめにWebサイトから取り出す(スクレイピングする)対象の要素を「UI 要素」として指定する必要があります。
次の作業手順に進む前に、スクレイピングの対象となるページ(ここでは https://jansearch.cravelweb.com/detail/4902370542912)をブラウザで表示しておいてください。
アクション一覧の「Web オートメーション」→「Web データ抽出」にある「Web ページ上の要素の詳細を取得します」をダブルクリックします。
「UI 要素」ボックスの下矢印をクリックし、[新しい UI 要素の追加] ボタンをクリックします。
デスクトップ画面に戻り、スクレイピングの対象となる要素の指定ウィンドウが表示されます。この状態でブラウザ上の取得したい対象のデータにマウスポインタを合わせ、Ctrl + 左クリック
すると、スクレイピング対象とするUI要素を追加することができます。
追加されたUI要素は「追跡セッションウィンドウ」に一覧として表示されます。登録が完了したら [完了] ボタンをクリックします。
「Web ページ上の要素の詳細を取得します」ウィンドウに戻ったら、[保存] ボタンをクリックして登録を完了します。
3. 現在の日時を取得します
スクレイピング日時の記録のため、変数として現在の日時を取得します。
アクション一覧の「日時」にある「現在の日時を取得します」をダブルクリックし、設定はそのままで [保存] してアクションを登録します。
4. 新しいリストの作成
CSVにデータを保存するために格納するリストを作成します。
アクション一覧の「変数」にある「新しいリストの作成」をダブルクリックし、設定はそのままで [保存] してアクションを登録します。
5. 項目をリストに追加
日時のデータをリストに追加します。
アクション一覧の「変数」にある「項目をリストに追加」をダブルクリックします。
「項目の追加」ボックスをクリックして表示された一覧から [CurrentDateTime] をクリックします。
「追加先リスト」ボックスをクリックして表示された一覧から [List] をクリックします。
[保存] ボタンをクリックして閉じます。
6. 項目をリストに追加
前項の「5. 項目をリストに追加」と同様に価格のデータをデータをリストに追加します。
「項目の追加」に [AttributeValue]、「追加先リスト」に [List] を指定し、[保存] ボタンをクリックして閉じます。
7. CSV ファイルに書き込みます
最後に、取得したデータをCSVファイルに書き込みます。
アクション一覧の「ファイル」にある「CSV ファイルに書き込みます」をダブルクリックします。
「書き込む変数」ボックスで [List] を選択し、「ファイルパス」で保存したいファイル名を指定します。ここでは例としてc:\test\kakaku.csv
と指定しています。 [保存] してアクションを登録します。
以上で一連のフローの設定は完了です。
フローを実行する
Microsoft Power Automate Desktopで作成したフローを実行するには、ウィンドウ中央の上部にある [実行](右三角のアイコン)ボタンをクリックします。
フローの設定に問題が無ければブラウザが自動的に起動し、UI要素で指定した価格の情報と日時の内容がCSVファイルで保存されます。
幅広く自動化が可能
今回の例ではテキスト変数の加工などを行っていないため、実際のサイトで表示される「(税込)
」や「発売前
」などの表示などもそのまま取り込まれてしまいますが、「テキストの解析」や「テキストを置換する」のほか、正規表現のアクションなどを使うことで自由に内容を加工することも可能です。
また、今回は繰り返しの実行を考慮せず、取得したデータでcsvファイルを新規保存するだけの動作としていますが、「条件」や「ループ」のアクションを使えば既存のファイルの内容を事前に読み取り、新規のデータを追記したり、繰り返し処理で1時間おきに最新の情報を取得するようなこともできます。
Power Automate のドキュメントページではPower Automate Desktopの基本的な使い方のほか、設定できる各アクションのリファレンスなども見ることができます。
簡単なデータ取得やファイルの加工、定期的なデータの収集や集計などは、詳しくマニュアルを読まなくてもある程度直感的に使えるような優しいUIになっており、プログラミング未経験の方でも扱いやすいツールになっているのではないでしょうか。
今回は簡単な自動化を例としてご紹介しましたが、そのほかにも便利な使い方があれば今後もご紹介していこうかと思います。
コメント
LowPriceへの保存は【Web ページ上の要素の詳細を取得します】でってことですよね