皆さんお久しぶりです!!前回に引き続き、株式会社オブジェクティブフリントの竹内が皆さんに優しくUiPathを教えていきたいと思います!!

前回の記事から気づけば夏を迎えてしまいました。
夏と言えば夏競馬です!
夏は外で風を感じながら観戦するのがとても気持ちが良いんですよね、いつもより青々とした芝のうえを走る馬の姿はとっても絵になります。

それでは本題に入ります、前回はExcelを使い、既にデータが入っているファイルから、データを読み取りデータ全体を表示させるロボット作りに取り組んで頂きましたがいかがでしたでしょうか?
今回はWebページ上の表データを自動的に取り込むことができるロボット作りに取り組んでいきます。

今回作るロボットを使えば、今まで情報収集にかけていた手間と時間を大幅に削減できます。

Webスクレイピングでできる一例は次のとおりです。

・特定のキーワードに対する検索結果を自動で収集
・ECサイトの「人気商品」の商品名や価格、販売ページのURL等を自動収集
・オークションサイトや物件サイトの価格情報を自動でCSVファイルに抜き出す

しかし、利用規約でスクレイピングを禁止しているサイトも多く(サーバーに負荷がかかるため)、著作権侵害に該当する恐れもあるため、スクレイピングをする際は気を付ける必要があります。

1.事前準備

UiPathを立ち上げ、「スタート」を選択後「プロセス」をクリックします。

「プロセス」に名前を付けます。
指定はないので好きな名前を付けましょう。
また、「説明」部分にどんなロボットなのか入力しておけば、これからたくさんロボットを作った時に見分けが付くのでおすすめです。

作成画面から「新規」を選択し、「シーケンス」をクリックします。

名前をつけて「作成」を押下します。
※今回は1つのアクティビティのみになります。

2.使用するアクティビティ


スクレイピングするには、最初にブラウザを立ち上げる必要があるので、アクティビティから「ブラウザーを開く」を検索し、シーケンス内に配置します。

「ブラウザーを開く」を中央にドラッグしたら、入力項目にスクレイピング先のURLをダブルコーテーション(””)で囲んで入力します。
今回は某価格サイトを使用します⇨http://kakaku.com/ranking/

またURLを開くブラウザーは「ブラウザーの種類」にて選択することができます。
今回はIE(Internet Explorer)を選択して開きます。

 

全て入力したら、試しに「F5キー」を押して、動作するか確認してみます。
ブラウザが立ち上がり、対象のURLにアクセスできたことを確認したら、一旦保存して次に進みます。

3:スクレイピングの対象となる項目を選択

上部メニューにある「データスクレイピング」を選択します。

「抽出ウィザード」というウィザードが表示されるので「次へ」をクリックします。

スクレイピング対象となる品目を選択します。一位の商品名をクリックします。

商品名を選択すると、下記ウィザードが表示されます。
こちらは「いいえ」を選択します。
※「はい」を選択すると、不用意なデータまでスクレイピングされてしまうため注意してください。

次に、このページ最後の品目(20位)を選択する必要があります。
予め、画面下の方にスクロールしておき、最後の品目が表示されたら「次へ」をクリックします。
※先に「次へ」を選択するとマウスを動かしても下にスクロールしないため。

最後の品目を選択します。
先程と同様、商品名をクリックします。
これで、1位~20位までの間のデータは自動的にスクレイピングが可能となります。

20位の商品名をクリックすると「抽出ウィザード」が表示されます。
初期では「Column1」という名称が入ってますので、分かりやすいように「商品名」に変更します。
URLも抽出したいので、「URLを取得」にチェックを入れます(名称も「Column2」から「URL」と変更しました)。
名称変更後、「次へ」をクリックします。

1位~20位までの商品名とURLを抽出できたことが確認できます。
品目とURLの他、価格の情報も欲しいので、「相関するデータを抽出」をクリックします。
スクレイピング対象を追加できるようになりますので、価格の部分を選択します(1位の商品の価格をクリックします)。

「抽出ウィザード」が表示されますので、画面下の方までスクロールし、「次へ」をクリックします。

最後の品目(20位)の価格の部分をクリックします

「抽出ウィザード」が表示されますので、「Column3」という名称を「最安値」に変更し、「次へ」をクリックします。

これで、商品名とURL、価格情報をスクレイピングする事ができました。
商品名、商品URL、価格情報をスクレイピングできたので、「完了」をクリックします。

「次へのリンクを指定」が表示され、スクレイピングが複数のページにわたる場合「はい」ボタンを指示するよう求められます。
1ページ分だけスクレイピングする場合は、「いいえ」を選択します。

4:CSVファイルに出力

スクレイピングしたデータをCSVファイルに出力します。
「CSVに書き込み」というアクティビティをブラウザーにアタッチ枠の下へ配置します。

ここで変数パネルをクリックし変数を作成します。
今回はデータ群を表す「ExtractDataTable」を変数に設定し、変数の型は「DataTable」に設定し、スコープはシーケンス全体を指定します。

次に、ファイルの出力先を決定します。
「CSVに書き込み」の右にあるファイルマークをクリックし、ファイル名を任意のファイル名に変更し(そのままでもOKです)、保存先を選択して下さい(デスクトップが分かりやすいです)。
最後に「保存」をクリックします。

「CSVに書き込み」アクティビティ内の書き込み元に「ExtractDataTable」と入力します。

以上でデータスクレイピングロボットは完成です!

ロボットがきちんと動くか、「F5キー」を押して動かしてみます。
すると1位から20位まであっという間にスクレイピングできたと思います。
以上、RPAツール、UiPathを使ってデータスクレイピングを行う方法を解説しました。

最初にお伝えしましたが、スクレイピングを禁止しているサイトもあり、著作権や偽計業務妨害などにも該当する恐れがあるので、
スクレイピングをする際は、サイト運営者とのトラブルにくれぐれもご注意ください。

ではまたお会いしましょう。さようなら