前回、「Power Automate Desktop」のインストールと、簡単な自動化を試したけど、今回は第二弾。
楽天市場で商品を検索し、一覧をテキスト出力してみる。
大まかな流れ
-
テキストファイルを削除(前回結果クリア)
-
ブラウザを起動し、楽天市場にアクセス
-
繰り返し(3ページまで)
-
1ページ目ならURLを変数に格納。2ページ目以降ならURL変数を加工。
-
URLにアクセスし、ページ内の項目を抽出(タイトル、リンク先等)
-
ページ内のリストをテキストファイルに出力
-
-
テキストファイルをメモ帳で開く
-
ブラウザを閉じる
動作イメージ
全体ソース
細かな作り方は、前回を参考にしてもらうとして、いきなりソース(フロー)。

設定値
以下、ソースの行番号ごとの設定内容。
-
入力ダイアログを表示
⇒楽天市場で検索したい商品名を入力ダイアログで指定させる。
商品名は%UserInput%、押下されたボタン種別は%ButtonPressed%変数に格納される。

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

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

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

-
コメント
-
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情報のスクレイピング完了!









