UiPathではウェブページのデータ抽出もプログラミング不要で実現できます。
この記事では、UiPathを使用してウェブページの表をExcelワークシートに出力する方法を説明します。
実現する処理内容
日経新聞の年初来高値一覧 https://www.nikkei.com/markets/kabu/newprice/ の表を
Excelファイルに出力する処理になります。
処理の流れ(シーケンス)
まず、URLをブラウザから開いて、データスクレイピングを行います。
次に、作成するExcelファイル名を生成します。
その後、Excelアプリケーションスコープアクティビティを使用してExcelファイルを
新規作成し、ヘッダ行を書き込みます。
最後に、繰り返し(各行)アクティビティを使用して、データスクレイピングで抽出でーたデータテーブルを1行ずつExcelに出力すれば完了です。
変数定義
今回使用する変数は以下の4つです。
- ExtractDataTable(DataTable型) ・・・ ウェブページから抽出した表を格納します。
- ExcelSaveFileName(String型) ・・・ 作成するExcelファイル名を格納します。
- NowYYYYMMDD(String型) ・・・ 現在の年月日をYYYYMMDD形式で格納します。
- ExcelSaveRowIdx(Int32型) ・・・ Excelファイルに書き込む行番号を格納します。
URLをブラウザから開く方法
「ブラウザーを開く」アクティビティを使用します。
テキストボックスにURL https://www.nikkei.com/markets/kabu/newprice/ を入力します。
その後に処理するデータスクレイピングは、「ブラウザーを開く」アクティビティの「Do」シーケンスの中に配置します。
データスクレイピング
UiPath Studio の「データスクレイピング」からブラウザを選択し、データ抽出した表を選択します。
抽出したデータは、DataTable型の変数「ExtractDataTable」に格納されます。
保存するExcelファイルパスを設定
「GetNowYYYYMMDD.xaml」を実行し、現在日付をYYYYMMDD形式で取得します。
YYYYMMDD形式の現在日付は「DateTime.Now.ToString(“yyyyMMdd”)」で取得可能です。
変数「ExcelSaveFileName」は「”D:\YearlyHighPrice_” & NowYYYYMMDD」をセットしています。
Excelファイルにヘッダ行を書き込み
1行目に以下のとおりヘッダ行を書き込みます。
- A1 : 証券コード
- B1 : 銘柄名
- C1 : 新高値(円) 時刻
- D1 : 前回高値(円) 日付
- E1 : 現在値(円) 時刻
Excelファイルにデータを書き込み
DataTable型の変数である「ExtractDataTable」を「繰り返し(各行)」アクティビティを使用してループします。
書き込むExcelの行番号は「ExcelSaveRowIdx」で指定します。最初にインクリメント(ExcelSaveRowIdx = ExcelSaveRowIdx + 1)しているのは、2行目から書き込んでほしいためです。1行目はヘッダ行のため。
- A列(証券コード) = row(1).ToString()
- B列(銘柄名) = row(2).ToString()
- C列(新高値(円) 時刻) = row(4).ToString()
- D列(前回高値(円) 日付) = row(5).ToString()
- E列(現在値(円) 時刻) = row(6).ToString()
このように「セルに書き込み」アクティビティで設定していけば、書き込み処理が実装されます。
UiPathのロボット開発相談を検討してみませんか?
私はシステムエンジニアとして10年以上経験があり、プロジェクトリーダーとしてUiPath導入を行ってきました。実務経験が豊富にありますので、UiPathの開発相談を頂ければ誠心誠意対応させて頂きます。
Twitter DM (https://twitter.com/Harus0313)または、以下のGoogleフォームまでご連絡頂けますと幸いです。
読み込んでいます…
そのほかのUiPath関連記事はこちら

コメント