UiPath

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

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

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

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

目次へ進む

 関連記事 【UiPath】Udemyのオンラインコースでワンランク上のロボット作成技術を学ぶ

当ブログ『エフペンITブログ』の運営者

 

エフペン
エフペン
もし、エフペンが未経験からITエンジニア目指すなら、プログラミングスクールのDIVE INTO CODEへ入会します。  

\教育訓練給付金対象講座なら受講料最大 70 %給付/

DIVE INTO CODEのオンライン個別説明会&相談会を見てみる

*オンライン個別説明会&相談会への参加は無料

DIVE INTO CODE公式サイトのWebエンジニアコース

 関連記事 現役SEエフペンがもしIT未経験からWebエンジニアを目指すならプログラミングスクール【DIVE INTO CODE】を受講する

ラッコくん
ラッコくん
プログラミングだけでなく、要件、設計、開発、テスト、環境構築とプログラミング以外のスキルも丁寧に学べるので、卒業後1人前とみなされて転職活動できるからだよ。

テキストを取得 (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】Udemyのオンラインコースでワンランク上のロボット作成技術を学ぶ

 

エフペン
エフペン
もし、エフペンが未経験からITエンジニア目指すなら、ITエンジニアとしての実力をつけることを優先しているプログラミングスクールのDIVE INTO CODEへ入ります。

\¥647,800(給付金を利用した場合、実質負担197,800円)/

Webエンジニアコース 就職達成プログラムを見てみる

*オンライン個別説明会&相談会への参加は無料

DIVE INTO CODE公式サイト オンライン個別説明会&相談会

 関連記事 現役SEエフペンがもしIT未経験からWebエンジニアを目指すならプログラミングスクール【DIVE INTO CODE】を受講する

ラッコくん
ラッコくん
卒業生の9割以上が未経験採用ではなく結果的に実務歴2~3年が必要が必要とされる求人票で内定を得ており、通常の未経験者より良い条件で転職できるよ。