[RPA]UiPath_Webスクレイピングの基本[Excelファイルへ書き込みまで]

## [0]はじめに
Zitanです。
RPAといったらウェブスクレイピングでしょう！ということで、
<font color="Blue">Excelファイルを読み込む->ウェブサイトから情報を取得->取得した情報をExcelに書き込む</font>
この一連の作業をUiPathで実現しました。
シンプルな動きですが、着実に身に着けていきましょう。

前回の記事もご参考にして下さい。

https://qiita.com/Zitan/items/c2a31e3b691ebf03a8c9


https://qiita.com/Zitan/items/93146402a4ddcf881cfb


## [1]準備
<b>[1-1]読み込み/書き込み用のExcelファイルを用意する</b>
デスクトップにフォルダ「Webスクレイピング」を作成して、その中にExcelファイル「WebSiteURL.xlsm」を作成しました。
中身はこんな感じ。URLを読み込んで、取得したデータがResultに書き込まれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1408638/58f99ca1-cbd0-8a41-70f5-b7d38df9c56a.png)

<b>[1-2]用意したExcelファイルにURLを事前に入力しておく</b>
今回は、天気予報サイトを使います。ウェザーニュースです。

https://weathernews.jp/


## [2]全体の流れ
全体の流れは下記の図の通りです。
<font color="Blue">Excelファイルを読み込む->ウェブサイトから情報を取得->取得した情報をExcelに書き込む</font>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1408638/9b6682ef-df2c-989c-b3ff-5467bbde341e.png)

<b>[2-1]Read_Excel アプリケーションスコープ</b>

「<Read>Excel アプリケーションスコープ」のプロパティ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1408638/fe6a95ea-294b-98f3-5c0b-1a5458e69751.png)

「「範囲を読み込み」（Excelのシート内のデータを取得する）」のプロパティ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1408638/31b1058e-6fa5-95d4-1b4d-e6d12fa465e9.png)

<b>[2-2]アクティビティ「ブラウザを開く」でCromeを使ってURLにアクセスする</b>
WebサイトのURLはExcelファイルのA2セルに入力されているので、先ほどのデータテーブル型の変数から配列番号で指定して特定のセルを取得します。
「<font color="red"><b>dtExcel_Sheet_1.Rows(0).Item(0).ToString</b></font>」(A2セル)  

「CromeでURLにアクセスする」のプロパティ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1408638/4fd63024-5004-225a-d49a-f94a5c37115d.png)  

「文字を入力_地域を入力」のプロパティ
今回は北海道というテキストを入力します。Webサイト内の操作というスコープがありますが、これは元々シーケンスという表示名でした。
アクティビティを「CromeでURLにアクセスする」スコープ内に追加すると、自動的に囲まれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1408638/90e698b7-0159-ee99-c516-2b1964d5cd39.png)  

アクティビティ「クリック」（検索ボタンをクリック）のプロパティ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1408638/815dc67e-dec3-8ce2-4f3c-9e93e423356c.png)
検索ボタンをクリックするには、要素を指定する必要があるので、セレクターの編集をします。
[![Image from Gyazo](https://i.gyazo.com/d7648e35552344c249fcf1ede82b3b86.gif)](https://gyazo.com/d7648e35552344c249fcf1ede82b3b86)

ブラウザを閉じると、「検証」ボタンが赤色のエラーになりますが、このままで大丈夫です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1408638/108a29b9-41ad-7fc1-535e-6a88c40a5829.png)

検索ボタンをクリックすると次のページに遷移します。
赤枠で囲った「北海道の天気予報」という文字列を取得してString型の変数「WebSiteGetText」に格納します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1408638/13716173-d04f-f7cb-c3a1-1684bbdc3106.png)
取得した文字列は、プロパティの「出力」に入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1408638/27ba43bc-793b-2b51-192c-6067f8da28f4.png)


<b>[2-3]Write_Excel アプリケーションスコープ</b>
先ほど出力したString型の変数「WebSiteGetText」をアクティビティ「セルに書き込み」の入力値にセットします。
書き込む先は、先ほど読み込んだ時のExcelファイルのSheet1のB2セルです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1408638/f528ce7e-ba43-3310-dbed-c34f1551dfc9.png)

## [3]結果
デバッグから実行すると、B2セルに「北海道の天気予報」が書き込まれています。
Excel アプリケーションスコープのプロパティで「変更を保存」にチェックを入れているので毎回上書き保存されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1408638/02130235-1202-9cae-dea5-eb9a44ad2262.png)

## [4]まとめ
いかがでしょうか。
この動作を応用してループ処理すれば、まさにRPAで実現したいことに近づくのではないでしょうか。