Power Automate Desktop(PAD)で、Excelの会社一覧をもとにGoogle検索して、会社のURLを取得する方法について解説します。
本記事を書こうと思ったきっかけとしては、クラウドワークスやランサーズなどのクラウドソーシングサービスにて、リストから企業情報を取ってくる案件がけっこうあるなと思ったからです。
PADは、数あるRPAツールのなかでもWindowsに標準搭載されているということで誰でも使いやすく、また、無料なので、初心者の方でも参考になる内容になるかと思います。
会社一覧のExcelを開く
以下のような、会社名がリストになっているExcelを開きます。
「Excelの起動」アクションで、会社一覧のExcelファイルを指定します。
Excelの最初の空行を取得
次に、Excelシートの最初の空行を取得します。
「列」には1を設定します。1列目には会社名がリストとして入っており、値が入っている最終行の次の行(最初の空行)の位置が取得されます。
取得した最初の空行をマイナス1する
取得した最初の空行をマイナス1します。これで、FirstFreeRowOnColumn変数には、最初の空行ではなく、そのひとつ上の「値が入っている最終行」がセットされます。
Excelから会社名の一覧を取得する
Excelから会社名の一覧を取得します。
「取得」を「セル範囲の値」にし、それぞれ以下のように指定します。
項目 | 設定内容 |
---|---|
先頭列 | 1 |
先頭行 | 2 |
最終列 | 1 |
最終行 | %FirstFreeRowOnColumn% |
会社名でGoogle検索する
会社名でGoogle検索します。フロー全体は以下のようになります。
各アクションの詳細は以降で解説します。
Google Chromeの起動
まず、Google Chromeを起動します。
「初期URL」には、Google検索のURL(https://www.google.com/?hl=ja)を入力します。
会社リストのループをまわす
先ほどExcelから読み取った会社名のリストは、データテーブルに格納されています。それをFor eachを使って一つずつ取り出して処理します。
「UI要素」のプルダウンを押すと、「UI要素の追加」が出てきますのでそれを押します。
ループ対象は %ExcelData%です。ループ処理でCurrentItem変数に会社名が一つずつ入っていきます。
キーの送信
キーの送信では、
- Google検索のテキストボックスに会社名を入力
- Enterキーで検索実行
を行います。
会社リストはデータテーブルになっているので、1つめのカラムを取得するために「%CurrentItem[0]%」とします。そして、Enterキーは入力内容の確定→検索の実行と2回送信します。
検索結果のURLを取得する
検索結果の一番目に出てきたWebページのURLを取得します。
「Webページからデータを抽出する」でhrefを取得する
このアクションを追加すると、「ライブWebヘルパー」というダイアログが表示されますので、その状態でGoogle検索結果一覧の1件目のサイトで右クリック>要素の値を抽出>タイトルを選択します。
ライブ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が表示されます。
テキストの置換とトリミング
これでURLが取れたと思ったのですが、末尾に改行コード(%0D%0A)が入っていてうまくURLを開けなかったので、余計な部分を除去します。
テキストを置換する
末尾に入ってしまっている改行コードを置換します。このとき、パーセントは2回続けて書くことでエスケープできます。
テキストのトリミング
で、これでうまくいくと思ったのですが、だめでした。
なので、テキストのトリミングをして末尾に入っている余計な空白などを除去します。
現在開いているページのURLを取得する
会社URLがやっと取れたので、これをもとに対象のページを開きます。
Google検索で1件目に出てきたURLを取得して、それを開きます。そして、「Webページ上の詳細を取得します」アクションで、現在開いているページのURLを取得します。
その結果を「Excelワークシートに書き込む」にてExcelに書き込みます。
動作確認
完成したフローを実行すると、以下のようにExcelの会社リストに取得したURLが記載されます。
まとめ
今回は、Power Automate Desktop(PAD)で、Excelの会社一覧をもとにGoogle検索して、会社のURLを取得する方法について解説しました。
「ライブWebヘルパー」という、データ抽出のためのアクションでCSSセレクターを設定する箇所が分かりにくかったです。この方法がベストなのかは分かりませんが、どなたかの参考になれば幸いです。また、「こういう方法のほうがスムーズだよ!」というご指摘等あれば気軽にコメント・お問い合わせいただければと思います。
コメント