基本編:データの抽出

『Webサイト内の文字情報を取得して、CSVファイルでダウンロードする』、より実用的なロボット作りに挑戦です。設定方法に少しだけクセがありますが、仕事の中で活躍する機会も多いので、ぜひマスターしてくださいね。

今回のミッション
食べログのお店検索結果画面をもとに、「お店情報をまとめた一覧表」を作成し、「CSV形式のファイル」でダウンロードします。
食べログのお店一覧をダウンロードして、表計算ツールで開いたらゴールです。
データ抽出の設定(単一項目)
「ロコさんアイコン」をクリックして、メイン画面を開きましょう。
画面中央下にある「EXTRACT DATARボタン」を押すと、Robotic Crowd Agentは「データ抽出設定モード」に切り替わります。データ抽出設定の開始です。
「抽出したいデータをクリックして、データの名前を設定します」と表示されて、データ抽出設定モードに切り替わりました。それと同時に「EXTRACT DATAボタン」が「STOPボタン」になっています。
以降、一通りの操作の記録が終了するまでメイン画面は触りませんので、こちらもうっかり「STOPボタン」を押してしまいそうな場合は、「×ボタン」でメイン画面を閉じてしまいましょう。
記録モードの時と同じように、要素の周囲に『黄色いアウトライン(枠)』が表示されます。まずは「お店の名前」を抽出したいので、お店の名前が黄色い枠で括られている状態で、「左クリック」をします。
記録モードの時と異なり、データ抽出設定モードでは「データ抽出画面」が出てきます。この画面で行うことは、抽出するデータに「名前」を設定することです。今回抽出するデータは「お店の名前」ですので、「Name」と付けました。
名前を付けたら、「次へボタン」を押します。
データ抽出設定が正しく行われると、枠の色が「黄色」から「空色」へと変わります。

この段階で、メイン画面から「STOPボタン」を押して、設定モードを終了しても単一項目のデータ抽出を行うことはできるのですが、このまま設定を進めれば複数項目を抽出することも可能です。今回はその設定も一緒に行ってみましょう。
データ抽出の設定(複数行・複数項目)
1つ目のお店のデータ抽出設定に続いて、2つ目のお店の名前を「左クリック」して、データ抽出画面を表示します。
データ名には、先ほど設定した「Name」という名前が既に入っていますので、そのまま「次へボタン」を押しましょう。
すると、ページ内のすべてのお店の名前の枠が「空色」に変わります。
データ抽出設定では、「共通の要素を複数選択する」ことで、「一連のデータをすべて抽出する設定(複数行選択モード)」に切り替わる、という仕組みになっています。
この状態で、さらに他の項目を選択し、データ抽出設定を行ってみましょう。
データ名には先ほどと同じ「Name」が入っていますので、抽出したい項目にあわせて名前を変更します。ここでは「お店の一言メッセージ」ということで、「Message」という名前を付けました。
すると、最初のひとつを選んだ段階で、一連の要素の枠がすべて空色(データ抽出設定対象)になりました。
先ほどの「お店の名前」の設定で、既に「複数行選択モード」になっていますので、その設定が適用されています。
ではでは、他の項目もドンドン追加していきましょう。「項目をクリックして、データ名を付ける」設定を繰り返します。
必要な項目のデータ抽出設定ができたら、「ロコさんアイコン」からメイン画面を開きましょう。
「STOPボタン」を押して、データ抽出設定モード終了です。

おつかれさまでした。2つ目のRPAロボット、『データ抽出君』の完成です。最後に、作ったロボットを動かしてみましょう。メイン画面の中央下、「TRYボタン」をポチッとどうぞ。
「実行中」のメッセージが表示された後、データ抽出が行われました。データ抽出画面には、設定した「データ名」に続いて、「抽出したデータ」が一覧形式で表示されています。
正しく抽出されていることを確認したら、画面右下にある「ダウンロードCSVボタン」を押して、CSVファイルをダウンロードしましょう。
データ抽出画面と同じ内容のCSVファイルがダウンロードできましたよ!

スゴいです!「TRYボタン」を押したら、一瞬でお店情報一覧ができあがりました。しかもどのデータも正確に抽出できています!CSVのダウンロードもあっという間にできたので、言うことなしです。

まさに「RPAロボットの本領発揮」という処理でしたね。沢山のデータを素早く正確に抽出することについては、間違いなく人間よりも高いパフォーマンスを発揮します。この辺りからRPAのロボットを好きになってくれると嬉しいです。
サンプルコード(YAML形式テキスト)
1 2 3 4 5 6 7 |
# ページからデータを抽出 +extract_data_1: action>: ExtractData browser: +open_browser_1 extractor: [{"name":"Name","selectors":[":nth-child(1) > .list-rst__wrap > .list-rst__header > .list-rst__header-inner > .list-rst__rst-name-wrap > .list-rst__rst-name > .list-rst__rst-name-target",":nth-child(2) > .list-rst__wrap > .list-rst__header > .list-rst__header-inner > .list-rst__rst-name-wrap > .list-rst__rst-name > .list-rst__rst-name-target"]},{"name":"Message","selectors":[":nth-child(1) > .list-rst__wrap > .list-rst__body > .list-rst__contents > .list-rst__rst-data > .list-rst__pr > .list-rst__pr-title"]},{"name":"Lunch","selectors":[":nth-child(1) > .list-rst__wrap > .list-rst__body > .list-rst__contents > .list-rst__rst-data > .list-rst__budget > :nth-child(2) > .c-rating__val"]},{"name":"Dinner","selectors":[":nth-child(1) > .list-rst__wrap > .list-rst__body > .list-rst__contents > .list-rst__rst-data > .list-rst__budget > :nth-child(1) > .c-rating__val"]},{"name":"Star","selectors":[":nth-child(1) > .list-rst__wrap > .list-rst__body > .list-rst__contents > .list-rst__rst-data > .list-rst__rate > .c-rating > .c-rating__val"]}] format: csv multiple: true |