PADでGoogle検索結果一覧からURLを取得する【Power Automate Desktop活用事例】

Power Automate Desktop

Power Automate Desktop(PAD)で、Excelの会社一覧をもとにGoogle検索して、会社のURLを取得する方法について解説します。

本記事を書こうと思ったきっかけとしては、クラウドワークスやランサーズなどのクラウドソーシングサービスにて、リストから企業情報を取ってくる案件がけっこうあるなと思ったからです。

PADは、数あるRPAツールのなかでもWindowsに標準搭載されているということで誰でも使いやすく、また、無料なので、初心者の方でも参考になる内容になるかと思います。

会社一覧のExcelを開く

以下のような、会社名がリストになっているExcelを開きます。

使用するアクション

Excelの起動

「Excelの起動」アクションで、会社一覧のExcelファイルを指定します。

Excelの最初の空行を取得

次に、Excelシートの最初の空行を取得します。

使用するアクション

Excel ワークシートから列における最初の空の行を取得

「列」には1を設定します。1列目には会社名がリストとして入っており、値が入っている最終行の次の行(最初の空行)の位置が取得されます。

取得した最初の空行をマイナス1する

取得した最初の空行をマイナス1します。これで、FirstFreeRowOnColumn変数には、最初の空行ではなく、そのひとつ上の「値が入っている最終行」がセットされます。

使用するアクション

変数を小さくする

Excelから会社名の一覧を取得する

Excelから会社名の一覧を取得します。

使用するアクション

Excel ワークシートから読み取る

「取得」を「セル範囲の値」にし、それぞれ以下のように指定します。

項目設定内容
先頭列1
先頭行2
最終列1
最終行%FirstFreeRowOnColumn%

会社名でGoogle検索する

会社名でGoogle検索します。フロー全体は以下のようになります。

各アクションの詳細は以降で解説します。

Google Chromeの起動

まず、Google Chromeを起動します。

使用するアクション

新しい Chromeを起動する

「初期URL」には、Google検索のURL(https://www.google.com/?hl=ja)を入力します。

会社リストのループをまわす

先ほどExcelから読み取った会社名のリストは、データテーブルに格納されています。それをFor eachを使って一つずつ取り出して処理します。

使用するアクション

For each

「UI要素」のプルダウンを押すと、「UI要素の追加」が出てきますのでそれを押します。

ループ対象は %ExcelData%です。ループ処理でCurrentItem変数に会社名が一つずつ入っていきます。

キーの送信

使用するアクション

キーの送信

キーの送信では、

  1. Google検索のテキストボックスに会社名を入力
  2. Enterキーで検索実行

を行います。

会社リストはデータテーブルになっているので、1つめのカラムを取得するために「%CurrentItem[0]%」とします。そして、Enterキーは入力内容の確定→検索の実行と2回送信します。

検索結果のURLを取得する

検索結果の一番目に出てきたWebページのURLを取得します。

「Webページからデータを抽出する」でhrefを取得する

使用するアクション

Webページヵらデータを抽出する

このアクションを追加すると、「ライブWebヘルパー」というダイアログが表示されますので、その状態でGoogle検索結果一覧の1件目のサイトで右クリック>要素の値を抽出>タイトルを選択します。

本来はタイトルではなくURLを取得したいのですが、後ほど詳細設定でタイトルのCSSセレクターを利用してURLを取得するよう設定するため、タイトルを選択しています。

ライブWebヘルパーの「詳細設定」を開きます。

詳細設定には、先ほど選択した「タイトル」のCSSセレクターが設定されています。この値をコピーします。

コピーしたら、メモ帳などにはりつけます。

Google検索結果の1件目のタイトルのCSSセレクターは、以下のようになっていました。

html > body > div:eq(5) > div > div:eq(8) > div:eq(0) > div:eq(1) > div:eq(1) > div > div > div:eq(0) > div > div > div > div > div > div > div > div:eq(0) > div > span > a > h3

で、欲しいのはURLです。

「h3」はタイトルを示すURLであり、「>a」までがURL(aタグ)となります。なので、

html > body > div:eq(5) > div > div:eq(8) > div:eq(0) > div:eq(1) > div:eq(1) > div > div > div:eq(0) > div > div > div > div > div > div > div > div:eq(0) > div > span > a

を、タイトルが設定されていたところに貼り付けて、属性も「href」に変更します。

うまくURLが取得できると、抽出プレビューでURLが表示されます。

Googleの「検証」ツールでCSSセレクタを取る方法でも可能ですが、「rso > div.hlcw0c > div・・・」のように、idセレクタ、クラスセレクタ等になっているとそのまま指定してもURLを取得できません。上記の方法が簡単かなと思います。

テキストの置換とトリミング

これでURLが取れたと思ったのですが、末尾に改行コード(%0D%0A)が入っていてうまくURLを開けなかったので、余計な部分を除去します。

テキストを置換する

使用するアクション

テキストを置換する

末尾に入ってしまっている改行コードを置換します。このとき、パーセントは2回続けて書くことでエスケープできます。

テキストのトリミング

で、これでうまくいくと思ったのですが、だめでした。

なので、テキストのトリミングをして末尾に入っている余計な空白などを除去します。

使用するアクション

テキストのトリミング

現在開いているページのURLを取得する

会社URLがやっと取れたので、これをもとに対象のページを開きます。

使用するアクション

Webページに移動

Google検索で1件目に出てきたURLを取得して、それを開きます。そして、「Webページ上の詳細を取得します」アクションで、現在開いているページのURLを取得します。

その結果を「Excelワークシートに書き込む」にてExcelに書き込みます。

動作確認

完成したフローを実行すると、以下のようにExcelの会社リストに取得したURLが記載されます。

まとめ

今回は、Power Automate Desktop(PAD)で、Excelの会社一覧をもとにGoogle検索して、会社のURLを取得する方法について解説しました。

「ライブWebヘルパー」という、データ抽出のためのアクションでCSSセレクターを設定する箇所が分かりにくかったです。この方法がベストなのかは分かりませんが、どなたかの参考になれば幸いです。また、「こういう方法のほうがスムーズだよ!」というご指摘等あれば気軽にコメント・お問い合わせいただければと思います。

chaso

文系出身、数字が苦手な平凡主婦。塾講師、大手企業SE、不動産事務、Webライター、QAエンジニアを経て現在RPAエンジニアとして働いています。機械音痴だけど効率化や自動化をこよなく愛しています!お仕事の依頼・ご相談は問い合わせよりお願いいたします♪

chasoをフォローする

コメント

タイトルとURLをコピーしました