前回、「Power Automate Desktop」のインストールと、簡単な自動化を試したけど、今回は第二弾。
楽天市場で商品を検索し、一覧をテキスト出力してみる。
大まかな流れ
- テキストファイルを削除(前回結果クリア)
- ブラウザを起動し、楽天市場にアクセス
- 繰り返し(3ページまで)
- 1ページ目ならURLを変数に格納。2ページ目以降ならURL変数を加工。
- URLにアクセスし、ページ内の項目を抽出(タイトル、リンク先等)
- ページ内のリストをテキストファイルに出力
- テキストファイルをメモ帳で開く
- ブラウザを閉じる
動作イメージ
全体ソース
細かな作り方は、前回を参考にしてもらうとして、いきなりソース(フロー)。
設定値
以下、ソースの行番号ごとの設定内容。
- 入力ダイアログを表示
⇒楽天市場で検索したい商品名を入力ダイアログで指定させる。
商品名は%UserInput%、押下されたボタン種別は%ButtonPressed%変数に格納される。
- If ButtonPressed = ‘Cancel’ then
⇒入力ダイアログの選択結果(%ButtonPressed%)が「キャンセル」か?
- フローを停止する
⇒「キャンセル」の場合、RPA実行を終了する。
- End
⇒End If(分岐終了) - ファイルの削除
⇒前回の検索結果ファイル(C:\temp\result.txt)を削除。
※「エラー発生時」の設定で、「フロー実行を続行する」としておく
- コメント
- 新しいChromeを起動する
⇒Webブラウザ(Google Chrome)を起動し、楽天市場にアクセス。
- Webページ内のテキスト フィールドに入力する
⇒楽天市場の検索テキスト欄に、上記入力ダイアログで入力した商品名(%UserInput%変数)を指定する。
- Webページのボタンを押します
⇒検索ボタン押下。
- コメント
- Loop LoopIndex from 1 to 3 with step 1
⇒3ページ目まで繰り返し実行する。
- If LoopIndex = 1 then
⇒1ページ目?
- Webページ上の詳細を取得します
⇒1ページ目なら、WebページのURLアドレスを%URL%変数に格納する。
- Else if
⇒1ページ目以外?(2ページ目以降?)
- Webページに移動します
⇒2ページ目以降の場合、URLの形式を変えてアクセスする。
(2ページ目以降は、URLパラメタが付く)
- End
⇒End If - 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)」に変更する
- テキストをファイルに書き込みます
⇒結果(%OutputData%変数の内容)をC:\temp\result.txtに出力。
- End
⇒Loop End - DOSコマンドの実行
⇒テキストファイルをメモ帳(notepad)で開く。
⇒「DOSコマンドの実行」だと、そこでフローが止まってしまい、そこから進まない。
生成された変数で、CommandOutput(テキスト出力)、CommandErrorOutput(エラーテキスト)、
CommandExitCode(終了コード)をOFFにしても駄目。
「start notepad “C:\temp\result.txt」としても駄目。(startコマンドで別プロセス化) - Webブラウザ―を閉じる
⇒Webブラウザ(Google Chrome)を閉じる
これでとりあえず、Web情報のスクレイピング完了!