UiPath

【UiPath】Webページからテキストを取得、データスクレイピング

UiPath Studioの開発では、Webページからテキストや表データを抽出することが多いです。

しかし、思うようにWebからデータを抽出できない方がおられます。

この記事では、Webページからテキストデータや表形式データの抽出(データスクレイピング)する方法について、解説します。

 

テキストを取得 (Get Text)

Webページからテキストデータを取得するのは、「テキストを取得 (Get Text)」アクティビティを使用します。

「テキストを取得 (Get Text)」は、UI Automation>要素>制御>テキストを取得 にあります。

テキストを取得の設定項目

設定場所 設定項目 設定内容
[プロパティ] パネル内 出力 指定した UI 要素から抽出したテキストを変数に格納できます。
共通 表示名 デザイナー パネルに表示されるアクティビティの名前です。
エラー発生時に実行を継続 アクティビティが例外をスローした場合でも、ワークフローを継続するかどうかを指定します。
その他
プライベート 選択すると、アクティビティで使用したデータが Studio のログに記録されなくなります。
ターゲットセレクター アクティビティの実行時に特定の UI 要素の検索に使用する Text プロパティです。
タイムアウト(ミリ秒) エラーがスローされる前にアクティビティが実行されるまで待機する時間 (ミリ秒単位) を指定します。
準備完了まで待機 アクションを実行する前に、ターゲットが準備完了になるまで待ちます。
要素 別のアクティビティから返される UiElement 変数を使用します。
クリッピング領域 UiElement を基準とし、左、上、右、下の方向で、クリッピング四角形 (ピクセル単位) を定義します。

 

サンプルプロセス
Yahooのトップページの本日の日時をテキストで取得する。

・対象のWebページ

 

・「テキストを取得 日時取得」のプロパティ

・実行結果

 

フルテキストを取得 (Get Full Text)

Webページから文字列とその情報を抽出するのは、「フルテキストを取得 (Get Full Text)」アクティビティを使用します。

「フルテキストを取得 (Get Full Text)」は、UI Automation>テキスト>画面スクレイピング>フルテキストを取得 にあります。

フルテキストを取得の設定項目

設定場所 設定項目 設定内容
[プロパティ] パネル内 出力 テキスト 指定した UI 要素から抽出された文字列です。
オプション 非表示を無視 このチェック ボックスをオンにした場合は、指定した UI 要素の文字列情報が抽出されません。
共通 表示名 デザイナー パネルに表示されるアクティビティの名前です。
エラー発生時に実行を継続 アクティビティが例外をスローした場合でも、ワークフローを継続するかどうかを指定します。
その他
プライベート 選択すると、アクティビティで使用したデータが Studio のログに記録されなくなります。
ターゲットセレクター アクティビティの実行時に特定の UI 要素の検索に使用する Text プロパティです。
タイムアウト(ミリ秒) エラーがスローされる前にアクティビティが実行されるまで待機する時間 (ミリ秒単位) を指定します。
準備完了まで待機 アクションを実行する前に、ターゲットが準備完了になるまで待ちます。
要素 別のアクティビティから返される UiElement 変数を使用します。
クリッピング領域 UiElement を基準とし、左、上、右、下の方向で、クリッピング四角形 (ピクセル単位) を定義します。

 

サンプルプロセス
Yahooの路線情報ページで、選択式の月を「フルテキストを取得」と「テキストを取得」でテキストデータを取得して、ログへ出力する。

・対象のWebページ

・「フルテキストを取得」のプロパティ

・「テキストを取得」のプロパティ

・実行結果

ペンギンさん
ペンギンさん
「フルテキストを取得」は、選択できるすべての月のテキストを取得していますが、「テキストを取得」は、表示された月しか取得出来ていません。

 

データスクレイピング

1ページのデータスクレイピング

Webページの表形式データを取得するのは、データスクレイピングを使用します。

データスクレイピングは、リボンにあります。

 

データスクレイピングの使用方法
・リボン部分にある[データスクレイピング]をクリック

 

・[次へ]をクリック

 

・表形式のデータ部分にマウスを合わせて、クリック

 

・[はい]をクリック

 

・[完了]をクリック

ペンギンさん
ペンギンさん
取得件数がデフォルトで100件なので、取得数に制限を設けたくない場合は0とします

 

・複数ページのデータを取得しない場合、[いいえ]をクリック

・データスクレイピングのワークフローが作成されたことを確認

ペンギンさん
ペンギンさん
[ブラウザにアタッチ]アクティビティの中に[構造化データを抽出]アクティビティが作成されます。

 

構造化データを抽出 (Extract Structured Data)の設定項目

設定場所 設定項目 設定内容
[プロパティ] パネル内 入力 メタデータを抽出 定した Web ページからどのデータを抽出するかを定義できる XML 文字列です。
セレクター アクティビティの実行時に特定の UI 要素の検索に使用する Text プロパティです。
タイムアウト(ミリ秒) エラーがスローされる前にアクティビティが実行されるまで待機する時間 (ミリ秒単位) を指定します。
準備完了まで待機 アクションを実行する前に、ターゲットが準備完了になるまで待ちます。
要素 別のアクティビティから返される UiElement 変数を使用します。
クリッピング領域 UiElement を基準とし、左、上、右、下の方向で、クリッピング四角形 (ピクセル単位) を定義します。
オプション ページ間の待機時間 (ミリ秒) 次のページが読み込まれるまで待機する時間 (ミリ秒単位) です
結果の最大数 抽出する結果の最大数です。
次リンクのセレクター 次のページへの移動に使用するリンクまたはボタンを識別するセレクターです。
ウィンドウ メッセージを送信 選択した場合、抽出対象のデータが数ページにまたがっていると、ターゲット アプリケーションに指定のメッセージを送信してページを変更するクリックが実行されます。
クリックをシミュレート オンにすると、抽出対象のデータが数ページにまたがっている場合、ターゲット アプリケーションのテクノロジーを使用してページを変更するクリックをシミュレートします。
出力 データ テーブル 指定した Web ページから抽出された情報です。
共通 表示名 アクティビティの表示名です。
エラー発生時に実行を継続 アクティビティが例外をスローした場合でも、ワークフローを継続するかどうかを指定します。
その他 プライベート オンにした場合、変数および引数の値が Verbose レベルでログに出力されなくなります。

 

サンプルプロセス
スポーツナビのJ1第1節の結果を、CSVファイルへ出力する。

・対象のサイト

 

・「構造化データを抽出」のプロパティ

・「CSV に書き込み」のプロパティ

・変数の設定

・実行結果出力されたCSVファイル

 

 

複数ページのデータスクレイピング(繰り返しリンクあり)

繰り返しリンクのある複数ページの表形式データを取得するのは、データスクレイピングで複数ページにわたるリンクを使用します。

データスクレイピングは、リボンにあります。

データスクレイピングの使用方法
・リボン部分にある[データスクレイピング]をクリック

・[次へ]をクリック

・表形式データのデータをマウスオーバーしてクリック

・[次へ]をクリック

ラッコくん
ラッコくん
表形式データの列データが一つの場合、2番目の要素を選択を求められるよ

 

・表形式データの最初に選択したデータ以外をマウスオーバーしてクリック

 

・[次へ]をクリック

ペンギンさん
ペンギンさん
Column1の列名を修正したい場合は、必要に応じて修正してください

 

・[完了]をクリック

ペンギンさん
ペンギンさん
取得件数がデフォルトで100件なので、取得数に制限を設けたくない場合は0とします

 

・[はい]をクリック

 

・同一リンクでページ遷移リンク(下記の場合は「次へ」)をクリック

 

・データスクレイピングのワークフローが作成されたことを確認

 

 

サンプルプロセス
Yahooニュースの国内のトピックを取得し、CSVファイルへ出力する。

・対象のサイト

 

・「ブラウザーにアタッチ」のプロパティ

・「構造化データを抽出」のプロパティ

 

・「CSVに書き込み」のプロパティ

 

・実行結果のCSVファイル

ラッコくん
ラッコくん
データの個数が103なので、複数ページのデータをすべて取得できているよ。

 

複数ページのデータスクレイピング(繰り返しリンクなし)

繰り返しリンクのなしの複数ページの表形式データを取得するのは、データスクレイピング、クリックと繰り返しアクティビティを使用します。

 

サンプルプロセス
スポーツナビのJ1第1節~第5節の結果を、CSVファイルへ出力する。

 

・対象のサイト

ラッコくん
ラッコくん
「次へ」のリンクがないので、クリックアクティビティでページを遷移させる必要があるよ。

 

・「ブラウザーにアタッチ」のプロパティ

 

・「クリック 第〇節」のクリック

ペンギンさん
ペンギンさん
セレクターで、第〇節を変数で指定しています。

 

・「構造化データを抽出」のプロパティ

ペンギンさん
ペンギンさん
データテーブルのデータは、上書きではなく追加されます。

 

・「CSVに書き込む」のプロパティ

 

・変数の設定

 

・実行結果出力されたCSVファイル

ラッコくん
ラッコくん
第1節~第5節までの試合結果が取得できているよ。

 

まとめ

  • Webページからテキストデータを取得するのは、「テキストを取得 (Get Text)」アクティビティを使用します。
  • Webページから文字列とその情報を抽出するのは、「フルテキストを取得 (Get Full Text)」アクティビティを使用します。
  • Webページの表形式データを取得するのは、データスクレイピングを使用します。
  • 複数ページのデータを取得する場合は、データスクレイピングで複数ページの要素を指定するか、アクティビティのクリックと繰り返しを使用します。

 

最後に関連記事を紹介します。

↓UiPath Studioのプロセス作成方法、アクティビティの使い方、開発時のチップスを網羅的に説明した記事です。

【UiPath】プロセス作成方法やアクティビティの使い方のまとめ記事UiPath Studioでのプロセス作成方法やアクティビティの使い方を体系的に学びたい方向けに、UiPath Studioのプロセス作成方法、アクティビティの使い方、開発時のチップスを分かりやすく説明します。...

https://penrako.com/uipathstudiosummary/(別ウインドウ)

 

↓RPAエンジニアの仕事内容、必要なスキル、将来性、IT未経験でもなれるのか、について解説した記事です。

RPAエンジニアへ転職  必要スキル、将来性、仕事内容、未経験OK?を解説 上記の疑問を持つ方向けに、RPAの開発や運用に携わる私が、RPAエンジニアの 仕事内容 必要なスキル 将来...

https://penrako.com/rpaengineer/(別ウインドウ)