Microsoft製RPAツール「Power Automate Desktop」でWeb操作の自動化

前回、「Power Automate Desktop」のインストールと、簡単な自動化を試したけど、今回は第二弾。
楽天市場で商品を検索し、一覧をテキスト出力してみる。
 

大まかな流れ

  1. テキストファイルを削除(前回結果クリア)
  2. ブラウザを起動し、楽天市場にアクセス
  3. 繰り返し(3ページまで)
    1. 1ページ目ならURLを変数に格納。2ページ目以降ならURL変数を加工。
    2. URLにアクセスし、ページ内の項目を抽出(タイトル、リンク先等)
    3. ページ内のリストをテキストファイルに出力
  4. テキストファイルをメモ帳で開く
  5. ブラウザを閉じる

 

動作イメージ

 
 

全体ソース

細かな作り方は、前回を参考にしてもらうとして、いきなりソース(フロー)。

 
 

設定値

以下、ソースの行番号ごとの設定内容。

  1. 入力ダイアログを表示
    ⇒楽天市場で検索したい商品名を入力ダイアログで指定させる。
     商品名は%UserInput%、押下されたボタン種別は%ButtonPressed%変数に格納される。

  2. If ButtonPressed = ‘Cancel’ then
    ⇒入力ダイアログの選択結果(%ButtonPressed%)が「キャンセル」か?

  3. フローを停止する
    ⇒「キャンセル」の場合、RPA実行を終了する。

  4. End
    ⇒End If(分岐終了)

  5. ファイルの削除
    ⇒前回の検索結果ファイル(C:\temp\result.txt)を削除。
    ※「エラー発生時」の設定で、「フロー実行を続行する」としておく

  6. コメント
  7. 新しいChromeを起動する
    ⇒Webブラウザ(Google Chrome)を起動し、楽天市場にアクセス。

  8. Webページ内のテキスト フィールドに入力する
    ⇒楽天市場の検索テキスト欄に、上記入力ダイアログで入力した商品名(%UserInput%変数)を指定する。

  9. Webページのボタンを押します
    ⇒検索ボタン押下。

  10. コメント
  11. Loop LoopIndex from 1 to 3 with step 1
    ⇒3ページ目まで繰り返し実行する。

  12. If LoopIndex = 1 then
    ⇒1ページ目?

  13. Webページ上の詳細を取得します
    ⇒1ページ目なら、WebページのURLアドレスを%URL%変数に格納する。

  14. Else if
    ⇒1ページ目以外?(2ページ目以降?)

  15. Webページに移動します
    ⇒2ページ目以降の場合、URLの形式を変えてアクセスする。
     (2ページ目以降は、URLパラメタが付く)

  16. End
    ⇒End If

  17. Webページからデータを抽出する
    ⇒各商品のデータを抽出し、%OutputData%変数に格納。

     

    ⇒%OutputData%変数に抽出するデータは、「詳細」>「詳細設定」リンクを辿った以下の画面で編集可能。

    ⇒Webページからデータを抽出 – 詳細設定
     抽出:テーブル
     基本CSSセレクター:html >p; body >p; div:eq(2) >p; div:eq(1) >p; div:eq(2) >p; div >p; div
     CSSセレクター:div:eq(1) >p; h2 >p; span、属性:Exists
     CSSセレクター:div:eq(1) >p; h2 >p; a、属性:Own Text
     CSSセレクター:div:eq(1) >p; h2 >p; a、属性:Href
     CSSセレクター:div:eq(2) >p; span:eq(0)、属性:Own Text

     上記の場合、
     ・[PR]イメージ存在有無
     ・商品名
     ・リンク先
     ・値段
     を抽出している。

     ※楽天にログイン済みで実行する場合、赤字部分を「div:eq(3)」に変更する
     

  18. テキストをファイルに書き込みます
    ⇒結果(%OutputData%変数の内容)をC:\temp\result.txtに出力。

  19. End
    ⇒Loop End

  20. DOSコマンドの実行
    ⇒テキストファイルをメモ帳(notepad)で開く。

    ⇒「DOSコマンドの実行」だと、そこでフローが止まってしまい、そこから進まない。
     生成された変数で、CommandOutput(テキスト出力)、CommandErrorOutput(エラーテキスト)、
     CommandExitCode(終了コード)をOFFにしても駄目。
     「start notepad “C:\temp\result.txt」としても駄目。(startコマンドで別プロセス化)

     メモ帳起動に最適な「アプリケーションの実行」というアクションがあったので、
     そちら(↓)を使うことにした。

  21. Webブラウザ―を閉じる
    ⇒Webブラウザ(Google Chrome)を閉じる

 
 

これでとりあえず、Web情報のスクレイピング完了!

 
 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


*