【RPA発展】UiPathの使い方(9)~高度なWebスクレイピング技術で複数データを一括取得

RPAの発展として、UiPathの実践的な使い方を紹介していきます。今回は、高度なWebスクレイピング技術を用いて、Webサイト内の複数データを一括取得したいと思います。

具体的には、UiPathのData Scraping(ExtractDataアクティビティ)を使用します。この技術を使用すれば、Webサイト内に直接表示されていないHTMLの属性データなども好きに取得することができます。

Webスクレイピング

【Step.1】UiPathを起動

先ずは、PCにインストールしているUiPathを起動して、空のプロジェクト(Blank)を作成します。

create project

【Step.2】Webブラウザの起動

次に、Webブラウザ(Internet Explorer)を起動して、connpassの新着イベントページ(https://connpass.com/explore/)にアクセスします。ブラウザはこのまま開いておきます。

open browser

【Step.3】Webスクレイピングの準備

Webブラウザの操作を自動記録させるために、Webレコーディングを起動させます。上部パネルの「Recording > Web」を選択します。

recording

別ウィンドウで「Web Recording」パネルが起動します。一番初めに開くWebサイトを事前にRPAロボットに教えておくために、「Open Browser > Open Browser」を選択します。

open browser

そして、先ほど開いておいたWebブラウザの表示部分にカーソルを合わせます。すると、選択された部分が黄色の枠で囲まれます。この状態でクリックを押します。

select browser

クリック後にURLが表示されるので、確認して「OK」を押します。これで、Webスクレイピングの準備が完了しました。

confirm url

【Step.4】Data Scrapingの起動

今回は、新着イベントの「開催日」「タイトル」「リンクURL」「開催場所」の項目を取得します。取得するイベント数は50件とします。

最初に、Data Scrapingで「タイトル」「リンクURL」「開催場所」の3つのデータを取得します。「開催日」については、HTMLの属性データから詳細情報を取得することにします。これは、後ほど、ExtractDataアクティビティのプロパティを編集することで実現します。

「Web Recording」パネルの「Copy > Scrape Data」を選択します。

scrape data

すると、別ウィンドウで「Select Element」の設定画面が開きます。「Next」ボタンを押して、取得したいデータを順に指定していきます。

select element

【Step.5】イベント題名の取得

先ずは「イベント題名」を取得するように指定します。画面内のイベント題名にカーソルを合わせると、黄色の枠で囲まれます。そのままイベント題名をクリックします。

event title 1

すると、別ウィンドウで「Select Second Element」の設定画面が開きます。重要なポイントですが、Data Scrapingで繰り返すデータを取得する場合は、データを2箇所指定してあげる必要があります。「Next」ボタンを押します。

select second element

2つ目のイベント題名をクリックします。なお、最後のイベント題名をクリックしても良いです。

event title 2

正しく設定できれば、別ウィンドウで「Configure Columns」の設定画面が開きます。ここで、「Extract URL」をチェックすることで、リンクURLも同時に取得してくれます。項目名を入力して、「Next」ボタンをクリックします。

configure columns

すると、別ウィンドウで「Preview Data」の設定画面が開きます。取得するデータの最大件数を50件に変更します。引き続き、他のデータ項目を取得するので、「Extract Correlated Data」ボタンを押します。

preview data

【Step.6】開催場所の取得

次は「開催場所」を取得するように指定します。画面内の開催場所にカーソルを合わせると、黄色の枠で囲まれます。そのままクリックします。

place

すると、別ウィンドウで「Select Second Element」の設定画面が開きます。「Next」ボタンを押します。

select second element

2つ目の開催場所をクリックします。なお、最後の開催場所をクリックしても良いです。

place2

正しく設定できれば、別ウィンドウで「Configure Columns」の設定画面が開きます。項目名を入力して、「Next」ボタンをクリックします。今回は、「Extract URL」をチェックしません。

configure columns

すると、別ウィンドウで「Preview Data」の設定画面が開きますので、「Finish」ボタンを押します。

preview data

最後に、別ウィンドウで「Indicate Next Link」の設定画面が開きます。データが複数ページにまたがる場合の設定を行います。「Yes」ボタンをクリックします。

multiple pages

画面の一番下にある「次へ」ボタンをクリックします。なお、画面を一番下までスクロールする際は、「F2」ボタンを押して、選択モードを一時解除してからスクロールしましょう。

next link

【Step.7】Webスクレイピングの終了

最後にWebブラウザを閉じておきます。「Web Recording」パネルが表示されていると思うので、「Close Browser」を選択します。

close browser

開いているWebブラウザの表示部分にカーソルを合わせます。すると、選択された部分が黄色の枠で囲まれます。この状態でクリックを押します。

select browser

これで、Webブラウザが閉じると思います。最後は、「Web Recording」パネルの「Save & Exit」を押して、今まで記録してきたワークフローを出力します。

save and exit

【Step.8】Data Scrapingの編集

イベントの「開催日」については、HTMLの属性データから取得します。そのためには、Data Scrapingアクティビティのプロパティを編集する必要があります。Inputの「ExtractMetadata」項目をクリックします。

extract metadata

別ウィンドウで「XML Editor」の設定画面が開きますので、下記のセレクタコードを追加して、「OK」ボタンを押します。詳細は割愛しますが、ポイントは、「attr」にHTMLタグの属性名をセットします。

<column name='開催日' attr='title' exact='1'>
 <webctrl class='dtstart' tag='span' />
 <webctrl class='value-title' tag='span' />
</column>

xml editor

なお、追加するセレクタの作成については、ある程度の試行錯誤が必要です。ブラウザの開発者ツールを使って、取得したい要素のタグ名やクラス名を確認して、セレクタを設計していきます。

check name

【Step.9】CSVファイルに保存

ワークフローの最後に、取得したテーブルデータをCSVファイルに出力する処理を追加します。画面左側のアクティビティ検索窓に「csv」と入力します。

表示された「Write CSV」アクティビティを、ワークフロー内の一番下にドラッグ&ドロップします。

write csv

最後に、「Write CSV」アクティビティのプロパティで、保存先のファイル名(今回は、data.csv)を指定し、InputのDataTableの値に「ExtractDataTable」と入力します。

【Step.10】ワークフローの実行

では、上部パネルの「Run」をクリックし、このワークフローを実行してみましょう。下記の通り、意図したデータが取得できました。

result

まとめ

今回は、高度なWebスクレイピング技術を用いて、Webサイト内の複数データを一括取得しました。

下記の点を理解して、他の業務にも応用できるようにしましょう。

  • Data ScrapingでWebサイト内の複数データを一括取得できる
  • 直接表示されていないHTMLの属性データも取得できる
  • 複数ページにまたがるデータも取得できる

最後に、UiPathに関する参考図書を一冊紹介しておきます。
できるUiPath 実践RPA <amazon.co.jp>

※本書の内容はネット上でも公開されているようです(できるネット)。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする