【5分でできる】Automation Anywhere A2019で簡単ウェブスクレイピング

# 概要
クラウド型RPAソフトウェアのAutomation Anywhere A2019では、[無料のCommunity Edition](https://qiita.com/RPAbot/items/2a2d94eeab641dfa6516)[^1]が利用できます。そして、ウェブページ上の決まった場所からデータを抜いてきて活用する「**データスクレイピング**」は、Automation Anywhere A2019の標準機能を使って簡単に実施できます。
![aa.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/0e0e228b-efc5-ca4b-6cc5-d99c65c1f46f.png)

今回は、ウェブページ上のテーブルから抜いてきたデータを CSV ファイルに保存して Excel で開いてみたいと思います。5分もあれば設定を完了することができます。

[^1]: 無料で使うためには条件があります。250名未満の小規模企業か、開発者であることなど。詳しくは[Community Editionの解説](https://qiita.com/RPAbot/items/2a2d94eeab641dfa6516)ページをご覧ください。

### 利用環境
Automation Anywhere A2019 Community Edition ビルド1598

# さっそく作ってみよう!
マイBotで新規Botを作成して、さっそく試してみましょう。

### 1. レコーダーで目的のテーブルをマウスでキャプチャ!
ターゲットページ: https://jp.kabumap.com/servlets/kabumap/Action?SRC=marketList/base
このページをあらかじめInternet Explorerで開いてください。

マイBotのページで新規に「WebScraping」という名前のBotを作成しましょう。左側のアクションパレットで"Recorder"を検索して、アクションをフローの中にドラッグ＆ドロップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/5e70f85a-e37c-9ff4-5be0-6c70a7a2a55a.png)

追加された「Recorder」のアイコンを選択して、右側のペイン (アクションの詳細) で「ウィンドウ」を選択、「ウィンドウを更新」ボタンをクリックします。「依存関係をダウンロード」のダイアログボックスがしばらく出た後、ウィンドウタイトルの一覧が表示されますので、目的のページのタイトル「全株価一覧 ...」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/e3a28984-3742-2030-5534-8d45c5428f56.png)
次に、「オブジェクトをキャプチャ」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/bf86c5d1-d922-90c8-bb84-e5f084abb5f5.png)

Internet Explorerの画面が前面に表示され、しばらくしてマウスポインタの周りに赤い四角の枠でコントロールの選択領域の表示が現れますので、目的のパーツ (ここではページ上の表)の上にマウスポインタを置いてクリックしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/fb0f4939-1e16-8154-b13c-e696b81c7ae6.png)

すると、以下のように表のプロパティとサムネイルがキャプチャされました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/b52b6187-494c-7145-38f9-7972ccd6fa45.png)


### 2. Data Tableとの紐づけ
キャプチャ下テーブルの内容をDataTableと呼ばれる型の変数に格納します。Actionに「Get table」を指定、左側のアクションパレットの「変数」の右側の「表示」をクリックして変数の一覧を表示します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/0b7df4ca-9d15-f99c-3c8e-c91f9e85343d.png)
「変数」の右側の「+」をクリックして変数を作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/3c6ecd6a-e19e-948b-8188-6a8c32843684.png)
名前=dataTable、タイプ=テーブルにして「作成」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/0e8a4b75-2d17-2fd9-5592-123e5825f719.png)
「Recorder」アイコンのアクションの詳細の「Assign the output to variable」で、先ほど作成した「dataTable - テーブル」を指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/6d33d197-0e61-812b-2512-5e929c877685.png)

>v11を知っている人は、テーブルはArray型変数と同じものであると理解してください。UiPathで使われている.NETのdataTable型とも似ています。

最後に、アクションの詳細ペインの右上の「適用」ボタンを押して確定します。
これで、テーブルの内容がdataTable変数に格納されます。

### 3. エクスポート先のCSVを指定
次にアクションパレットから「Data Table」を検索して「Write to file」を「Recorder」の次にドラッグ＆ドロップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/c0f55338-24ae-e893-6f93-d3710e690ca1.png)

「Data Table:Write to file」のアクションの詳細で以下のことを設定します。

* Data table name = dataTable
* Enter file name=d:\table.csv (もしくは適切な出力ファイル名)
* Create folders/files if it does not exist (フォルダー/ファイルがない場合は作成) = ON
* When writing (書き込み時) = Overwrite existing file (既存ファイルを上書き)を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/b24414cc-23e0-73d8-5965-8fa65b1e5354.png)
アクションの詳細ペインの右上の「適用」ボタンを押して確定します。
最後に、さらに右上の「保存」ボタンを押して、Bot全体を保存します。

これで作成完了です。

# 実行してみよう!
「Run」ボタンを押すと、しばらくして実行が始まり、Internet Explorerの画面が前面に来ます。
正常に完了すると、以下のような画面が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/6fef7fa0-6225-a40e-02f9-1d72289bae41.png)

出力ファイルを指定した場所をエクスプローラーで見てみると、ファイルができていることがわかります。Excelで中を開いてみると、以下のように表が取得できています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/dbc4311b-de45-0fca-587b-f30061f2740f.png)


# まとめ
いかがでしたでしょうか。基本的なテーブルのデータスクレイピングを行うだけなら1行のコマンドだけで実施できてしまいます。また、アクションの詳細での操作や Internet Explorer でのビジュアルな操作以外に、コードを書くような操作はなく、Automation Anywhere を使ったデータスクレイピングがいかに簡単であるかをお判りいただけたかと思います。

>**v11との比較**: 前のバージョンでの操作「[【5分でできる】Automation Anywhere で簡単ウェブスクレイピング](https://qiita.com/RPAbot/items/70c138d2534eb2a994bc)」は、専用コマンド Extract Tableから直接CSVに書き込んだり、`$Table Column(列番号)$`という専用のシステム変数で値を参照したりしていましたが、A2019ではいったんData Tableに情報を保存して、Data Tableの操作コマンドを介して参照するように変更になりました。