【初心者向け】UiPathによるRPA実装11 Webサイトからの構造化データの取り込み

前回までの記事では、ユーザーから検索ワードを受け取り、Google検索を行うまでの処理を自動化してきました。

今回紹介するUiPathの使い方は、表示された検索結果からデータをUiPathに取り込むというものです。では、さっそく進めて行きましょう。

<スポンサーリンク>

取得する項目の特定

さて、一口に「検索結果」といっても、検索結果画面に表示される情報は多岐に渡ります。このうち、どれをUiPathに取り込むかをまずは決める必要があります。

以下の画面は、”RPA”というキーワードによるGoogle検索結果ですが、ここでは「①タイトル」、「②URL(サイトアドレス)」、「③概要説明」の3つを取り込むことにしましょう。また、検索結果には「広告」とかかれたサイトも表示されますが、今回は取得対象に含めないことにします。

構造化データの取得

「①タイトル」、「②URL(サイトアドレス)」データの取得

続いて、特定したデータの取り込み処理を自動化していきましょう。まずは「①タイトル」、「②URL(サイトアドレス)」データの取得処理について説明します。

なお、Google検索結果のように、「タイトル、URL、説明」という決まった構造が繰り返し現れる規則正しいデータを「構造化データ」と呼びます。この構造化データ取得の自動化には、UiPathの「Data Scraping」という機能を使います。

まずは、前回までに作成した自動化プログラムを起動し、Googleの検索結果をInternet Explorer上に表示させましょう。その状態で、Uipathのメニューバーより、「Data Scraping」をクリックします。

すると以下のポップアップが表示されます。ここからデータ取得を実際に行っていきますが、まずは「Next」を押して先に進みましょう。

続いて、取得するデータ項目をGoogle検索結果画面で選択していきます。まずは、「広告」と書かれていないサイトのタイトル部分にカーソルを合わせ、タイトル部分が黄色い枠で囲われたところでクリックしましょう。

すると、次のポップアップが表示されます。これは、UiPathがデータ取得対象のデータ構造を把握するために、同じ種類のデータ項目(今回の例ではタイトル)で別のサイトのものを指定せよという指示です。なお、ポップアップにも書かれていますが、同じページの一番最後のデータを指定して下さい。そうすることにより、UiPathが対象のデータ構造をより正確に把握できるようになります。

では「Next」を押して、処理を先に進めましょう。

さて、今はGoogle検索結果ページの上部が表示されていると思いますので、ブラウザのスクロールバーをクリックして、ページ最後に表示されているサイトのタイトル部分を選択したいところです。しかしながら、既に制御がUiPathに移ってしまっており、ブラウザのスクロールバーがクリックできないと思います。

これを解消するためのテクニックが1つあります。それは「F2」キーを押すというものです。

「F2」キーを押すと、3秒間だけUiPathの制御を止めることができます。デスクトップ右下に数字が表示され、カウントダウンが始まりますが、この間にブラウザ画面をスクロールし、検索結果ページの一番下を表示させましょう。間に合わなかったら、再度「F2」キーを押して、同様の操作を続けます。

うまく、ページの最後を表示することができましたでしょうか。表示できましたら、ページの最後に表示されているサイトのタイトル部分を先ほどと同様にクリックします。

クリックが終わると、再度UiPathが別のポップアップ画面を表示しますが、一度ブラウザに戻ってみましょう。UiPathが検索結果ページの構造を理解し、タイトルがどこに該当するかを判断した結果が黄色でマーキングされているはずです。

正しく認識されているようであれば、UiPathのポップアップ画面に戻って、必要事項を入力していきましょう。

ここでやることは大きく分けて2つ、「今取得したデータ項目の名前付け」と取得したデータがリンク項目になっているとき、「そのリンク ( URL ) を取得するかの選択と、取得する場合、その項目の名前付け」です。

今回の例では、1つ目については”title”という名前にします。また、2つ目については、リンクを取得することとし、その名前は”url”と指定します。指定が完了したら「Next」をクリックして先に進めます。

すると、取得したデータのプレビュー画面が表示されます。

ここでは、まず取得されたデータが正しそうか、「Preview Data」と記載された部分を見て確認します。一見正しそうですね。

次にやることは、データを何件取得するかの指定です。先ほどの検索結果ページには10サイトしか表示されていないため、トータル10件のデータしか取得できていません。しかしながら、検索結果ページの次のページには11~20件目のサイトも存在しているはずです。

UiPathでは、このように取得対象のデータが複数ページにまたがっている時、合計で何件のデータを取得するかを指定することができます。ここでは”50″件のデータを取得することにしましょう。(Google検索結果の次ページへの移動方法は後ほど説明します)

さて、もう1点、少し思い出して頂きたいのですが、今回は、「①タイトル」、「②URL」の他に、「③概要説明」のデータも取得しようと考えていたのでした。しかしながら、今は「①タイトル」、「②URL」のデータしか取得できていませんよね?追加で必要なデータ項目がある場合には、ウインドウ下の「Extract Correlated Data」ボタンを押します。

「③概要説明」データの取得

さて、概要説明データの取得ですが、先ほどタイトルデータに対して行った操作と全く同様の操作を行います。UiPathにデータ構造を理解させるために、最初のサイトの概要説明を選択後、それとは別のサイトの概要説明項目を指定するのも全く同じです。

作業が終わると、これまた先ほどと同様、データ項目名を入力する画面が表示されます。ここでは「Extract Text」のみにチェックを入れ、項目名としては”description”と指定し、「Next」ボタンで先へ進めます。

取得結果が表示されるのも同様ですね。念のために「Preview Data」の表示内容をざっと確認の上、「Finish」ボタンを押しましょう。

複数ページにまたがったデータの取得

さて、ここで、取得したいデータが複数ページにまたがっているかどうかの確認画面が表示されます。先ほど少し触れたお話ですね。「Yes」ボタンを押して先に進みましょう。

ここで、UiPathに対して「どうすれば残りのデータが表示されている、次の検索結果ページに遷移できるか」を教える必要があります。Googleの場合は、ページ下の「次へ」ボタンを押せば問題ないですね。

ということで、カーソルを検索結果ページ上の「次へ」に合わせ、黄色い枠で囲われたところでクリックします。

ここまでやると、これまでの操作がActivityとして記録されます。UiPathウインドウの中央の領域に以下のようなボックスが作成されていれば、これまでの操作はうまくいっています。

Sequenceの整理

新しいActivityが作成されたところで、前回まで作成してきたSequenceと組み合わせましょう。

現在、Sequence全体の流れは、以下の画面のようになっているかと思います。(なお、補足ですが、各ボックスは右上の矢印マークを押すことにより、広げたり閉じたりすることができますので、見やすいよう、適宜矢印ボタンを使ってください。)

新しく作成されたボックスは、「Data Scraping」と書かれている部分ですが、これをその上の「Recording Sequence」の直下に移動し、Sequenceを多少きれいにしたいと思います。操作は簡単で、「Data Scraping」を移動したい場所にドラッグ&ドロップするだけです。

以下の画面が完成形です。

終わりに

さて、データ取得処理の自動化はこれで完了で、この後は取得したデータの中身を実際に見てみたいと思います。が、今回は少し長い内容となってしまったため、次回、また説明させて頂きたいと思います。