RPAコラムー第28回 Power Automate Desktopでロボット作成(1/3)

前回コラムでは、Power Automate Desktopの概要を含め、交通費精算の自動化ロボットの作成を行いました。

今回は、Web上のランキングから情報を取得し、エクセルファイルに出力する作業を自動化します。

Web上からテーブルを取得する処理や日付の取得・文字データへの置き換えなど、様々なアクションを駆使するロボットになりますので、ぜひマスターしていただければと思います。

前提

今回行う作業はランキング情報の取得です。

マーケティングの担当をされている方などは、市場調査等で様々なサイトのランキング情報を見られることも多いのではないでしょうか?

ここでは、サンプルとしてテレビ出演時間のランキングを下記のサイトから取得し、エクセルに転記を行います。

https://www.tv-ranking.com/ranking/

これを手作業で行う場合、以下の様な工程をとるかと思います。

①ブラウザを開いてランキングサイトにアクセスする

②ランキングに掲載されている任意の情報を取得(コピー)する

③取得した情報をエクセルに転記(ペースト)する

Power Automate Desktopに置き換える際、取得する情報や出力先はあらかじめ設定しておく必要があります。

これらを踏まえ、以下の様に図示することが出来ます。

それでは、実際にPower Automate Desktopでロボットを作っていきましょう。

準備 日付の取得

まず最初に、ブラウザを起動します。

使用するWebブラウザに縛りはありませんが、今回はChromeを使用します。

↑初期URLはGoogleを設定しています。

続いて、ランキングの情報を取得するための準備をします。

ランキングサイトは任意の時期の情報を表示することが出来るので、いつの情報をとるかを決める必要があります。

今回は汎用的なロボットにしたいので、現在の日付の年をもとに表示したいと思います。

日時の取得は、「日時」内の「現在の日時を取得します」アクションを使って取得します。

取得した日付は”2021/6/16 12:00:00(取得現在の日付)” という形式になっています。

アクションを使って日時の取得を行うと、datetime型での取得となってしまいます。

こちらを今後の処理で使いやすくするために、テキスト型へ変換する必要があります。

また、取得した日時には今後の作業で不要な情報も含まれているため、変換と同時に必要な情報だけにします。

変換には、「テキスト」内の「datetimeをテキストに変換」を使います。

これを先ほどのランキングのURLに入れることで、任意の時間のデータを表示させることが出来ます。

設定では、”使用する形式”を”カスタム”にします。

URLに入力する際、必要な情報は年なので、”カスタム形式”には年を表す”yyyy”を入力します。

↑年(year)を表す”yyyy” に変換します。

同様に、取得後のエクセル名のために、”yyyyMMdd”形式でも保存しておきましょう。

「datetimeをテキストに変換」を追加し、カスタム形式”yyyyMMdd”で保存します。

↑MMとddは、それぞれ月(month)、日(day)を表します。

変数名はそれぞれ”Year”、”YearMonthDay”としました。

“%Year%” には”2021″ が、”%YearMonthDay%” には”20210616″ が入っています。

続いて、ランキングサイトに移動します。

「Webオートメーション」内の「Webページに移動します」を選び、URLを入力しましょう。

ここで、先ほど取得した念を表す変数”%Year%”を用い、”https://www.tv-ranking.com/ranking/?d=%Year%&m=y”と入力することで、変数の値(2021)年のランキングに移動することが出来ます。

Webのデータを抽出

Webページに移動したら、ランキングの情報を取得します。

情報の取得には、「Webオートメーション」内「Webデータ抽出」から「Webデータを抽出します」を選びましょう。

このアクションを使うことで、Web上の情報を変数、またはエクセルスプレッドシート形式で取得することが可能です。

ランキングは25項目ずつに区切られているので、最初に1~25位、次に26~50位までを取得します。

形式はExcelスプレッドシートを選択します。

アクションを選択後、画面にライブWebヘルパーが表示されます。

この状態で、先ほど開いたランキングページの1~25位までのランキングにマウスカーソルを合わせましょう。

右クリックから「HTMLテーブル全体を抽出する」を選び、要素を取得しましょう。

画面の要素が取得できていれば成功です。

↑取得後は画面の様な表示になります。

 わかりやすく変数名は”Ranking1_25″ としています。

今度は26~50位の情報を取得します。

エクセルシートは最初の取得の際にすでに作成されているので、今度は形式を「変数」で取得します。

先ほどと同様に「HTMLテーブルを抽出する」を選び、26~50位のランキングにカーソルを合わせ、データを取得しましょう。

↑変数で取得した場合はこのようになります。

合計3回要素を取得しているので、わかりやすく変数名は”Ranking26_50″ としています。

最後に、ランキングの項目の値を取得します。

先ほどと同じく、「Webデータを抽出します」を選びます。

今度は「順位」にカーソルを合わせ、右クリックから「要素の値を抽出」「テキスト」を選択し、項目を取得します。同様に「名前・職業」にカーソルを合わせ、右クリックから「要素の値を抽出」「テキスト」を選択することで、プレビューに”順位”から”2019年”までの6項目が入ります。

画面の様に取得できていたら成功です。

↑変数名は”RankingTitle” としています。

ここまで取得したら、ブラウザを閉じます。

「Webオートメーション」から「ブラウザを閉じる」を選び、ブラウザを閉じましょう。

ここまでのまとめ

ここまでで、必要なデータの取得までが完了しました。

前回の交通費精算の際にも使った要素の取得ですが、Web上の任意の情報を取得するのに重宝することがお分かりいただけたかと思います。

次回は取得したデータをエクセルに転記していく作業を自動化します。

今回のコラムに関わらず、Power Automate Desktopに関するお悩み事、ご不明点等ございましたら、下記よりご気軽にお問い合わせください。

オンラインセミナー

Power Automate Desktopに関するオンラインセミナーを開催予定です。

詳細はこちら

お問い合わせ

名古屋本社

東京本社

【受付時間】9:00~18:00

pagetop

お客様のお悩み承ります。