UiPath Studioの開発では、Webページからテキストや表データを抽出することが多いです。
しかし、思うようにWebからデータを抽出できない方がおられます。
この記事では、Webページからテキストデータや表形式データの抽出(データスクレイピング)する方法について、解説します。
関連記事 【UiPath】Udemyのオンラインコースでワンランク上のロボット作成技術を学ぶ
システム開発,クラウド構築,サービス企画まで幅広い経験を持つITエンジニア。当ブログでは、UiPathや資格取得のノウハウを発信します。profile詳細 / twitter:@fpen17
テキストを取得 (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ページの表形式データを取得するのは、データスクレイピングを使用します。
データスクレイピングは、リボンにあります。
・リボン部分にある[データスクレイピング]をクリック
・[次へ]をクリック
・表形式のデータ部分にマウスを合わせて、クリック
・[はい]をクリック
・[完了]をクリック
・複数ページのデータを取得しない場合、[いいえ]をクリック
・データスクレイピングのワークフローが作成されたことを確認
構造化データを抽出 (Extract Structured Data)の設定項目
設定場所 | 設定項目 | 設定内容 | |
[プロパティ] パネル内 | 入力 | メタデータを抽出 | 定した Web ページからどのデータを抽出するかを定義できる XML 文字列です。 |
セレクター | アクティビティの実行時に特定の UI 要素の検索に使用する Text プロパティです。 | ||
タイムアウト(ミリ秒) | エラーがスローされる前にアクティビティが実行されるまで待機する時間 (ミリ秒単位) を指定します。 | ||
準備完了まで待機 | アクションを実行する前に、ターゲットが準備完了になるまで待ちます。 | ||
要素 | 別のアクティビティから返される UiElement 変数を使用します。 | ||
クリッピング領域 | UiElement を基準とし、左、上、右、下の方向で、クリッピング四角形 (ピクセル単位) を定義します。 | ||
オプション | ページ間の待機時間 (ミリ秒) | 次のページが読み込まれるまで待機する時間 (ミリ秒単位) です | |
結果の最大数 | 抽出する結果の最大数です。 | ||
次リンクのセレクター | 次のページへの移動に使用するリンクまたはボタンを識別するセレクターです。 | ||
ウィンドウ メッセージを送信 | 選択した場合、抽出対象のデータが数ページにまたがっていると、ターゲット アプリケーションに指定のメッセージを送信してページを変更するクリックが実行されます。 | ||
クリックをシミュレート | オンにすると、抽出対象のデータが数ページにまたがっている場合、ターゲット アプリケーションのテクノロジーを使用してページを変更するクリックをシミュレートします。 | ||
出力 | データ テーブル | 指定した Web ページから抽出された情報です。 | |
共通 | 表示名 | アクティビティの表示名です。 | |
エラー発生時に実行を継続 | アクティビティが例外をスローした場合でも、ワークフローを継続するかどうかを指定します。 | ||
その他 | プライベート | オンにした場合、変数および引数の値が Verbose レベルでログに出力されなくなります。 |
スポーツナビのJ1第1節の結果を、CSVファイルへ出力する。
・対象のサイト
・「構造化データを抽出」のプロパティ
・「CSV に書き込み」のプロパティ
・変数の設定
・実行結果出力されたCSVファイル
複数ページのデータスクレイピング(繰り返しリンクあり)
繰り返しリンクのある複数ページの表形式データを取得するのは、データスクレイピングで複数ページにわたるリンクを使用します。
データスクレイピングは、リボンにあります。
・リボン部分にある[データスクレイピング]をクリック
・[次へ]をクリック
・表形式データのデータをマウスオーバーしてクリック
・[次へ]をクリック
・表形式データの最初に選択したデータ以外をマウスオーバーしてクリック
・[次へ]をクリック
・[完了]をクリック
・[はい]をクリック
・同一リンクでページ遷移リンク(下記の場合は「次へ」)をクリック
・データスクレイピングのワークフローが作成されたことを確認
Yahooニュースの国内のトピックを取得し、CSVファイルへ出力する。
・対象のサイト
・「ブラウザーにアタッチ」のプロパティ
・「構造化データを抽出」のプロパティ
・「CSVに書き込み」のプロパティ
・実行結果のCSVファイル
複数ページのデータスクレイピング(繰り返しリンクなし)
繰り返しリンクのなしの複数ページの表形式データを取得するのは、データスクレイピング、クリックと繰り返しアクティビティを使用します。
スポーツナビのJ1第1節~第5節の結果を、CSVファイルへ出力する。
・対象のサイト
・「ブラウザーにアタッチ」のプロパティ
・「クリック 第〇節」のクリック
・「構造化データを抽出」のプロパティ
・「CSVに書き込む」のプロパティ
・変数の設定
・実行結果出力されたCSVファイル
まとめ
- Webページからテキストデータを取得するのは、「テキストを取得 (Get Text)」アクティビティを使用します。
- Webページから文字列とその情報を抽出するのは、「フルテキストを取得 (Get Full Text)」アクティビティを使用します。
- Webページの表形式データを取得するのは、データスクレイピングを使用します。
- 複数ページのデータを取得する場合は、データスクレイピングで複数ページの要素を指定するか、アクティビティのクリックと繰り返しを使用します。
関連記事 【UiPath】Udemyのオンラインコースでワンランク上のロボット作成技術を学ぶ
\教育訓練給付金対象講座なら受講料最大45万円給付/
*オンライン個別説明会&相談会への参加は無料
関連記事 現役SEエフペンがもしIT未経験からWebエンジニアを目指すならプログラミングスクール【ディープロ】を受講する