ゆとりSEは副業がしたい

ゆとりSE

RPAやPythonをはじめとした情報系の発信やガジェットの紹介などがメインです

【UiPath】Pythonより簡単!UiPathのデータスクレイピングで超簡単に情報収集

f:id:oichiki:20210213191709p:plain

スクレイピングを簡単に

スクレイピングといえばPythonのイメージがありますが、UiPathでおこなった方がとても簡単です。

基本的にスクレイピングは情報を得るための手段なので、簡単であればあるほどいいと思っています。そこで今回は私が良く利用しているUiPathのスクレイピングについてまとめたいと思います。

UiPath初心者の方も無料で始められますので、ぜひお試しください。初心者向けの書籍としては以下のできるシリーズがおすすめです。

データスクレイピング

今回はデータスクレイピングを利用してUiPathのコーポレートブログページの情報を取得していきます。そして、データスクレイピングで得た情報をもとに各記事の本文を取得します。 www.uipath.com

データスクレイピングは以下から設定します。

f:id:oichiki:20210213192751p:plain
データスクレイピング

データスクレイピングの設定

データスクレイピングをするには、実際に取得する対象の要素を選択していきます。また、選択する要素は一定のパターンで並んでいる必要があります。

今回はコーポレートブログページの1記事を要素選択します。選択は要素の1番目と最後の2つを設定します。今回でいうと1番左上の記事と右下の記事になります。

パターンが認識でき、選択が完了すると以下の画面が出ます。ここでURLを取得をクリックしてください。

f:id:oichiki:20210213194516p:plain
URLを取得

URLではなく取得できたテキストをベースにクリックしてもいいのですが、動作の安定性を考えてURLに移動をすることで、各記事の本文に移動する方法をとっています。

次へを押すと実際に取得できる情報の一覧が表示され、ウインドウ下部では最大取得数が表示されます。今回は10記事分しか取得しないので、あまり関係ありません。ちなみに情報が存在するだけ取得したい場合は0を入力します。

これで最後に完了を押したら設定完了です。あとは出力されるDataTable型(ExtractDataTable)の変数をCSVにして出力したり、データベースに入力したりなど、必要な処理を行えばOKです。今回はCSVに出力させます。


記事本文の取得

次に取得した情報から、各記事を開き本文を取得します。取得した情報をきれいにしておきたいので、新しく情報格納用のデータテーブルを"データテーブルを構築"アクティビティで作成します。(BlogDataTable)

f:id:oichiki:20210213200600p:plain
データテーブルを構築

記事本文の取得は先ほど取得したExtractDataTableの各行に対して繰り返しで行います。本文を表示するために繰り返し毎に二列目のURLを利用して”URLに移動”アクティビティを使用します。

本文は"テキストを取得"アクティビティを使用して取得し、要素の選択ではボディの記事本文を丸ごと囲める範囲の要素を選択します。

取得した本文文字列は変数に格納しておき、記事タイトル・URLと合わせて先ほど新しく作成したBlogDataTableに追加します。アクティビティは"データ行を追加"を使用し、プロパティは以下のようにしています。
f:id:oichiki:20210213201955p:plain
データ行を追加

データが追加できたらあとは繰り返しですべての記事に同様の処理を実行します。 これで、すべての情報を格納したデータテーブルが作成できました。あとはこれをCSVに出力するだけです。

以下がここまでの繰り返し部分のフローです。
f:id:oichiki:20210213202320p:plain
記事本文の取得

CSVへ出力

最後にデータテーブルをCSVとして出力します。使用するのは"CSVに書きこみ"アクティビティです。書き込み先と変数を指定するのみで実行できます。今回は以下のようにしています。

f:id:oichiki:20210213202739p:plain
CSVに書きこみ

フローの全体

作成したフローの全体はこのようになっています。

f:id:oichiki:20210213204704p:plain
フローの全体

このような情報を収集して資料に残すような定型業務は自動化しやすいので、ブログ記事でなくても様々なものに対して利用することができます。

是非皆さんも身近な業務を自動化させてみてください。