UiPathの使い方⑥webからのデータ取得(画面スクレイピング)

UiPathの使い方⑥webからのデータ取得(画面スクレイピング)



今回画面スクレイピングの解説です。
以下のような処理を解説します。

  1. 出発駅と到着駅のルート検索をする

  2. 最安値を取得する(画面スクレイピング)
    ※下記赤丸の値(13870円)をアンカーを指定して取得します。

  3. 最安値をエクセルに記述

1のルート検索についてはUiPathの使い方⑤繰り返し処理をデータテーブルを用いてつくる
にて解説しています。
今回はその続きになります。




新しくプロセスを作りましょう。
名前はなんでもOKです。
私はシステムからのデータ取得としました。



1.出発駅と到着駅のルート検索をする


IEでyahoo路線情報を用いてルートを検索します。
下記記事を参考にしてください。

UiPathの使い方⑤繰り返し処理をデータテーブルを用いてつくる

上記の記事では下記のExcelファイルをデータテーブル上に読み込んで
データ分検索をしています。
前回は検索しただけですので今回は画面スクレイピングをして最安値を取得し
てExcelファイルに記述します。

読み込みファイルは下記になります。
取得した最安値をC列に記述します。



2.最安値を取得する(画面スクレイピング)


まずは料金の安い順に並べ替えましょう。
料金の安い順をクリックさせます。

利用可能UI Automation要素マウスクリックをドラッグアンドドロップしてください。
その後画面上で指定をクリックします。

料金の安い順を選択します。
※ブラウザはIEにしてください。




下記のようになっていればOKです。




このままだと東京大阪間の検索時のみしか料金の安い順はクリックされません。
それはなぜか?
下記のハンバーガーマークからセレクターを編集をクリックします。
title 「東京」から「大阪」への乗換案内 – Yahoo!路線情報とあります。




つまりtitleとはページ名みたいなものです。
「東京」から「大阪」への乗換案内 – Yahoo!路線情報ページ料金の安い順をクリックしますよ。ということなのです。




ですのでこのままだと「東京」から「大阪」への乗換案内 – Yahoo!路線情報ページしかクリックできません。
駅名など毎回変わるわけですからこのままではよくありません。
下記のように*(アスタリスク)を用います。




*(アスタリスク)は何でもいいよということです。
なので京都米原間を検索すれば
titleは「京都」から「米原」への乗換案内 – Yahoo!路線情報となります。
しかし*を用いればtitleは無視されます。
OKを押下すれば設定完了です。
titleのチェックを外してもOKです。

画面スクレイピングの利用方法


下記の13,870円を取得します。
スクレイピングとはweb上のデータを取得するという意味です。



当然ながら検索する駅間によって金額が変動致します。
そのためアンカーとい別途基準となる地点を設けて金額を取得します。
アンカーベースというアクティビティを追加します。




要素を探すアクティビティを追加します。
ここに不変的な基準を設定します。




乗換回数順を選択します。
ここを起点としてその下にある最安値をスクレイピングします。
※先ほど同様セレクターを編集をクリックしてtitleはアスタリスクを設定してください。



表示中のテキストを取得アクティビティを追加します。




スクレイピングしたい金額を選択します。




プロパティからスクレイピングしたデータの格納先の変数を設定します。
このようにすれば検索駅名が変わって金額が変動しても適切な最安値が取得できるはずです。




※アンカーから外して表示中のテキストを取得アクティビティだけを用いて13,870円を指定してみた後、セレクターを確認し更に別途駅名を変えて検索しセレクターを確認して頂きますと統一された属性がない事がわかります。
このような場合アンカーは非常に便利な機能です。

3.最安値をエクセルに記述



利用可能アプリの連携ExcelExcelアプリケーションスコープを配置します。
書き込みしたいファイルを指定すれば完了です。

利用可能アプリの連携Excelセルに書き込みアクティビティを下記のように配置します。
ここでは書き込みするExcelファイルは1.出発駅と到着駅のルート検索をするで用いたExcelファイルになっています。




書き込みセルはC1としています。
書き込み処理を繰り返し処理内にいれてC2,C3と連続書き込みさせる方法は別途解説します。




大変お疲れ様でした。
今回はアンカー機能を用いた画像スクレイピング方法でした。
駅間の最安値という毎回値の変わるデータもアンカー機能を用いればエラーを出す事なくスクレイピングできます。