RPA BANKをご覧のみなさま、こんにちは!「最近RPAが気になって仕方がない」とソワソワしているものの、「ドコかムズカシそうな雰囲気」になかなか一歩が踏み出せないでいる、そんなみなさまに向けたお気楽RPA解説連載、「さるでき流 RPAのはじめかた」、今回で第16回目になります。

みなさま、あけましておめでとうございます!
本年もどうぞよろしくお願いします。

……と、スッカリ1月も終わりかけの中、新年のご挨拶をさせていただきました。いやはや、ぼーっとしていると月日はあっという間に経ちますねー……、でも大丈夫!ワタシ達にはRPAという強い味方がいます。きっとコロボ君が年末年始もガリガリと働いていてくれたことでしょう。ねえ!コロボ君。

コホン。

さてさて、昨年から引き続きまして、今年もUiPath Community エディションを使ったUiPathイジりを行っていきます。前回まで「メモ帳」「Excel」と、基本的なアプリケーションを自動化してきましたので、今回は「Web」の世界に乗り出すことにしましょうか。UiPathには「データスクレイピング」という超便利な機能がありますので、そちらも覗いてみることにしましょう。

ではでは、ツールを起動っ! 2019年のRPA探検、スタートです!

【UiPath Studio】
はい、UiPath Studioが立ち上がりました。しばらく使っていないとCommunityエディションのライセンスが「期限切れ」になっている場合があります。その場合は画面の指示に従ってライセンスを更新してくださいね。(……え?なんでそんなことを知っているのか、ですって?さ、さあ?どうしてでしょう?)

今回の処理の流れはこんな感じです。

STEP1:インターネットブラウザーを立ち上げて「Yahoo!」を開く
STEP2:新着ニュース一覧を取得する
STEP3:Excelに新着ニュース一覧を貼り付ける

おお、サラッと書きましたが、なかなか実践的な流れになっていますね。インターネットから情報を取得する、というと、BizRobo!編で登場した、「ループ処理」が思い出されますが、UiPathではどんな感じに行うのでしょう?(思い出されません……という方は、第3回をご覧くださいませ!)

STEP3は前回行った「Excel編」の応用です。Excelアプリケーションスコープを配置して、その中に各種Excel操作用のアクティビティを並べていく、という流れでしたね。復習がてらに、一丁軽〜く自動化してやりましょうか。では、コロボ君、設定をはじめますよー!

STEP0:事前準備

今回もあらかじめデスクトップ上に「空のExcelファイル」を作っておきましょう。ファイル名は自由に付けて大丈夫です。中身は今回も何も書かないでおいてくださいね。ファイルを保存したら、Excelを終了します。

STEP1:インターネットブラウザーを立ち上げて「Yahoo!」を開く

UiPath Studioで、「新しい空のプロセス」を作成します。メイン画面が立ち上がったら、画面左側にあるサイドバー、「アクティビティパネル」の『検索欄』に、「ブラウザー」と入力しましょう。

「ブラウザーを開く」というアクティビティが見つかりましたか?見つかったら、ドラッグ&ドロップでデザイナーパネルにグイッとな。こちらが、インターネットブラウザーを開くためのアクティビティです。

デザイナーパネル上のアクティビティに「URL(ホームページのアドレス)の入力欄」がありますので、そちらに「”https://yahoo.co.jp”」と入力しましょう。前後をダブルクオーテーションで括ることをお忘れなく。

これで、インターネットブラウザーが立ち上がって、「Yahoo!」の画面が開きます。この先の設定はブラウザーを開いた状態で行いたいので、ワタシ達も実際に「Internet Explorer」を立ち上げて、「Yahoo!」の画面を開いておきましょう。

STEP2:新着ニュース一覧を取得する

Yahoo!を開いたら、UiPath Studioに戻って、画面上部の「デザインタブ」の中から「データクスクレイピング」をクリックします。「ブラウザー」の前に「表」があるアイコンですね。はい、ポチッとな。

おお、『取得ウィザード』なるミニ画面が立ち上がりましたよ。

さて、ここから少々説明がややこしくなります。この『データスクレイピング機能』は、その名の通り「データ(表形式のデータ)を抽出するための機能」となっていまして。ものすごく大雑把に言うと、Webサイト上で「ここから」「ここまで」を選択して、「その間のデータを取ってくる」というシロモノなのです。

ただ、その「ここから」「ここまで」は、「画面上を自由に選択してOK」というわけではなく、『同一の要素を持っている項目の中で範囲を指定する』というルールが決められています。

で、この『同一の要素』というのが……所謂Webサイトの「ソースコード(Webサイトを構成するプログラムコード)」というヤツと密接に関わっておりまして……表面から見ても、イマイチ良くわからないのです。困ったことに。うーむ。

とりあえず、実際に設定を行いながら雰囲気を体感してみましょうか。では、先程開いておいたYahoo!のページを見てくださいね。

その中から、「表っぽいところ」、もう少しシステム的に言うと「繰り返しデータが並んでいるところ」を探しましょう。

「ニュースのタイトル」がズラッと並んでいるあたりは、「表」になっているような気がしますね。「もっと見る」や「トピックス一覧」のあたりは、同じ表の中には入っていないような気がします。

UiPath Studioの「取得ウィザード」では、表の「最初の行」と「最後の行」を選択することで、その間のデータを丸ごと取得できます。

ではまずは、「最初の行」を選びましょう。要素は何重にも重なって複雑な構造になっていますので、設定には注意が必要です。今回は「文字にマウスを乗せると表示される枠の中から、タイトルの内側の枠」を選びます。内側です。外側じゃダメですよ。

最初の行を選ぶと、取得ウィザートが再び開きます。今度は「第二の要素を選択」と書いてありますね。ここで「最後の行」を選びます。先程と同様に、「文字にマウスを乗せると表示される枠の中から、内側の枠」を選びましょう。

要素を選び間違えると、エラー画面が表示されます。画面をよく見て、正しい要素を選び直してくださいね。

設定が正しく完了すると、「テキスト(書かれている文字)」が抽出されます。Yahoo!の新着ニュース一覧は、クリックするとニュース本文にジャンプするよう、文字にリンクが貼られていますので、「URL」の抽出も可能です。

「データプレビュー」画面が表示されました。うんうん、『ニュースのタイトル』と『本文へのURL』がちゃんと取得できています。もし表が複数ページに渡る場合は、この後に出てくるミニ画面で設定を行います。

取得ウィザード画面の「終了」ボタンを押すと、UiPath Studioのデザイナーパネルにアクティビティがガガッと作られます。

さてさて、無事デザイナーパネルに戻って来ることができました。ちなみに、今取得したデータはどんな形でUiPathに格納されているかというと、「変数」の形で格納されています。試しに変数パネルを開いてみてみましょうか。グイッとな。

「ExtractDataTable」なる変数が自動的に作られていますね。変数の「型」は「DataTable型」という特別な型になっています。後の作業のために、スコープ(この変数が使える範囲)が「データスクレイピング」という枠に設定されていることを、覚えておいてくださいね。

STEP3:Excelに新着ニュース一覧を貼り付ける

はい!おつかれさまでした。慣れないうちは「エラーの連発」で、設定が大変だったのではないかと思います。なんでこんな面倒な設定になっているのかと言うと、Webサイトって、実は「表」を作ることがそれほど得意ではないのですね。ですので、各サイトあの手この手を使ってなんとか「表の形」を構成しています。Webサイト毎に作りが違うことが多いので、データを正しく取得するためには、そのサイトに合わせた設定をしないといけない、ということなのです。

では、データが取得できましたので、今度はそのデータをExcelに貼り付けていきます。前回のことを思い出しながら、設定を進めていきましょう。

まずは、『Excelアプリケーションスコープ』を、「デザイナーパネル」にドラッグ&ドロップするのでしたね。このアクティビティを配置すると、「Excelアプリケーションスコープ」の枠、そして「実行」の枠まで、一気に作られるのでした。アクティビティ上の「ファイルの指定欄」には、あらかじめ作っておいたExcelファイルを指定しておきましょう。

今回、「実行」の枠の中に入れるのは、「範囲に書き込む」アクティビティです。サイドバーのアクティビティパネルで検索してみてください。見つかりましたか?見つかったらドラッグ&ドロップ、と。

設定する項目は、「どのシートに書き込むか」という『シート名』、そして「どのセルを起点にするか」という『開始セル』、そして「どのデータを書き込むか」という『入力データ』の3つです。

シート名と開始セルは、初期値(「”Sheet1”」と「”A1”」)でOKです。入力データは、先程取得したデータを格納している、「ExtractDataTable」変数を入力します。「E」と打って、選択……おや?

……選択肢が出てこないぞ?とお困りのアナタ。もしかしたら「変数のスコープ」が正しく設定されていないかもしれません。ここまで各処理をバラバラに作ってきましたので、「枠」もバラバラに作られている可能性が高いのです。

ここで一度、先頭の「ブラウザーを開く」アクティビティまで戻って、「データスクレイピング」、そして「Excelアプリケーションスコープ」と、各枠がキレイに収まるよう配置を調整してみてください。

さて、「ExtractDataTable」変数が選択できるようになりましたか?

よーし、これで準備はバッチリですね。それではコロボ君、Yahoo!の最新ニュース一覧をExcelにまとめてくださいな!よーい、スタート!

はい!バッチリまとめてくれました!URLもちゃんと抽出してくれましたので、Excelからニュース本文にいつでもアクセスできますねー。コロボ君、おつかれさまでした!

【今回のまとめ】
「UiPath」を使ったロボット作り(Web編)、いかがでしたか?

BizRobo!のときは、「取得する要素を決めて」「ループの回数を決めて」という流れで設定しましたが、UiPathでは「取得する要素の開始場所」と「終了場所」を決めるという流れでした。設定方法は少々違っていましたが、やりたいことは同じですので、BizRobo!で勉強したみなさまなら、きっと理解しやすかったんじゃないかと思います。

ただ、このWebサイトからのデータ取得処理、ものすごく便利(というか、ものすごくロボットが得意)な処理なのですが、どちらのやり方を選んでも、Webサイトの内部構造である「ソースコード」を意識する必要があります。ですので、使いこなすには少々……トレーニングが必要になります。「せっかくだし、ちょっと覗いてみようかな」と思った方は、是非「HTMLタグ」で検索してみてくださいね。

さてさて、今回でUiPath編も5回目になりまして、そろそろ終わりが近づいてきました。名残惜しいですが、データスクレイピングまで見ることができましたので気分的に満足で……おや?「何かとっても大事なことを忘れている気がする」ですと?

えーと、「せ」からはじまる何かだった気がしないでも……ないような。何でしたっけ?さあ、それでは次回はやり残していた、例の「セ◯◯ター」を見ていくことにしましょう。次回もお楽しみに!