【UiPath】検索結果の取得を試みる③【初心者】

UiPath

UiPath検索結果取得を試みる③【初心者】

今回は、UiPathで「検索結果の取得」にトライしてみます。パート③です。

パート①

【UiPath】検索結果の取得を試みる①【初心者】
【UiPath】検索結果の取得を試みる①【初心者】 今回は、UiPathで「検索結果の取得」にトライしてみます。 目的 検索キーワード別の検索結果を取得し、Excelに記入する。 検索キーワードは、「AA BB」「AA CC」…...

パート②

【UiPath】検索結果の取得を試みる②【初心者】
【UiPath】検索結果の取得を試みる②【初心者】 今回は、UiPathで「検索結果の取得」にトライしてみます。パート②です。 パート①は以下。 目的 パート①の目的 検索キーワード別の検索結果を取得し、Excelに記...

目的

パート①の目的

検索キーワード別の検索結果を取得し、Excelに記入する。

検索キーワードは、「AA BB」「AA CC」……のように、2つ目のワードを変えたもの。

取得するデータは、検索結果1位のタイトルとリンク。

イメージはこんな感じ↓

検索キーワードタイトルリンク
AA BBXhttps…
AA CCYhttps…
AA DDZhttps…

パート②と③の目的

1回の実行で、2つ以上の検索キーワード検索結果1位のリンクをExcelに記入する。

仮説③

この手順でできる?

1.検索キーワードが記入されているExcelファイルを読み込む
2.「繰り返し」アクティビティを使用
3.セルに書き込む場所を1つずつ下にづらす

検証③

パート①と②で使用していたキューを使わずに、検証を進める。

1.検索キーワードが記入されているExcelファイルを読み込む

検索キーワードが記入されているExcelファイル↓

上記ファイルを「範囲を読み込み」アクティビティですべて読み込む。

学習者
学習者

「範囲を読み込み」アクティビティで出力したデータは、データテーブル型の変数になるね。この変数を「繰り返し」アクティビティで使えば、うまくいくかも。

 

ワークフローの全体像はこちら↓

2.「繰り返し」アクティビティを使用

「繰り返し」アクティビティを活用して、URLの取得から書き込みまで行う。

「繰り返し」アクティビティの中身を紹介。

まず、「範囲を読み込み」アクティビティで読み込んだデータをデータテーブル型の変数Keywordに格納。そして、変数Keywordを「繰り返し」アクティビティで使用する。

変数Keywordの1行目の検索キーワードでGoogle検索を行うフローを作成。

内容が前回の記事と重なるため詳細は割愛。

【UiPath】検索結果の取得を試みる②【初心者】
【UiPath】検索結果の取得を試みる②【初心者】 今回は、UiPathで「検索結果の取得」にトライしてみます。パート②です。 パート①は以下。 目的 パート①の目的 検索キーワード別の検索結果を取得し、Excelに記...

「属性を取得」アクティビティでページのリンクを取得して、String型の変数URL_Dataに格納。

そして、変数URL_Dataに格納したURLをExcelファイルの指定のセルに記入。

最後に、表示したタブを閉じる。

学習者
学習者

今回の肝は、ここから。
これまでも、「セルに書き込み」アクティビティで取得したURLを記入したかったが、指定のセルに記入するため、取得したURLを同じセルに上書きしてしまうという問題があった。この問題を解決するには、記入するセルを1つずつ下にずらす必要がある。

3.書き込むセルを1つずつ下にずらす

解決方法は、「セルに書き込み」アクティビティの範囲指定の仕方と「繰り返し」アクティビティの設定にあった。

「セルに書き込み」アクティビティの範囲指定の仕方は、上記画像のとおり。

列は「C(URL記入列)」に決めて、行を1つずつずらす記述として「(count + 2).ToString()」としている。

学習者
学習者

「セルに書き込み」アクティビティの範囲指定を上記のように式で表す発想は、今までなかった。でも、「(count + 2).ToString()」の(count + 2)の部分は、どういうことだろう。

 

countは「繰り返し」アクティビティに関係がある。

上記画像のように、「繰り返し」アクティビティには、現在のインデックスを変数に出力できる欄がある。この項目が、処理中のデータテーブル型の行数を表す。よって、最初に処理するデータは、「count = 0」となる(データテーブル型は0から始まる)。

しかし、実際にExcelファイルに記入する際は、C2から記入がはじまるため、「セルに書き込み」アクティビティの範囲指定に「count + 2」とすることで、「0 + 2」となり、C2から書き込みがはじまる。

「繰り返し」アクティビティで処理が繰り返されるごとに変数countに+1される。そのため、最初はC2から書き込み、2回目はC3、3回目はC4と処理が繰り返されるたびに記入されるセルが下にずれていく。

学習者
学習者

ふむふむ、今回の盲点は、「セルに書き込み」アクティビティの範囲指定の方法と「繰り返し」アクティビティの処理中の行を表す方法だったね。

 

実際に、ワークフローを実行してみた結果↓

一度の実行で、C2とC3にURLが記入された。

検証結果①

検証結果、各検索キーワードの検索結果1位ページのリンクを取得し、指定のExcelファイルに順番よく並べて記入できた。

今回の検証結果による学びと課題

 

学び(記事化予定)

・「繰り返し」アクティビティ「現在のインデックス」の使い方
・「セルに書き込み」アクティビティの範囲指定の方法

 

いちおう、当初の目的はクリアしたが、改善すべき点はいくつかある。

課題

・タイトルを取得・書き込みできていない
・ページに移行してURLを取得している(ページに移行せず、検索結果ページからリンクを取得できないか)
・処理時間の短縮
・シミュレートモードでできないか
・だれでも簡単に使えるようにできないか

 

参考文献

【RPA入門】UiPathの使い方4~Excelリストを用いた繰り返し処理 | ITスクール「First」
RPAの入門として、UiPathの使い方を紹介していきます。今回は、キーワードが記載されたExcelリストを用いて、Webサイト上で繰り返し検索し、取得したデータをExcelリストに書き込む処理を自動化したいと思います。1. UiPathの初期設定 「【RPA入門】UiPathの使い方1~Webデータ取得(テキスト編)

コメント

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