【UiPath】書籍のランキングを調べて、チャットワークやExcelに書き込む方法

ワークフロー概要

  1. Excelの書籍リストを読み込む
  2. 楽天ブックスのサイトにアクセス
  3. 書籍と著者名で検索して、各書籍ページからランキング情報を取得
  4. 取得したランキング情報をチャットワーク(グループチャット)に投稿
  5. Excelの書籍リストのランキング列に、ランキング情報を書き込む

ワークフロー全体図

作成手順

1.【Excelアプリケーションスコープ】をドロップ

Excelドキュメントを選択[“書籍リスト.xlsx”]

●[書籍リスト.xlsx]の内容 ※ランキング列は空

2.【範囲を読み込み】を [実行] 内にドロップ

[プロパティ]の設定
[シート名]:「”リスト”」
[データテーブル]:変数「BookList」を新規作成

3.【ブラウザーを開く】をドロップ

[プロパティ]の設定
[URL]:「”https://books.rakuten.co.jp/book/”」
[ブラウザーの種類]:「BrowserType.Chrome」を選択

4.[Do]内に、【繰り返し(各行)】をドロップ

[プロパティ]の設定
[データテーブル]:変数「BookList」を選択
[現在のインデックス]:変数「Count」を新規作成
→セルの書き込み位置用に設定

5.「繰り返し(各行)」内に、「行項目を取得」を2つドロップ

1つ目は「タイトル」情報を取得

[プロパティ]の設定
[列名]:「”タイトル名”」
[行]:「row」
[値]:変数「BookTitle」を新規作成

2つ目は「著者」情報を取得

[プロパティ]の設定
[列名]:「”著者”」
[行]:「row」
[値]:変数「Author」を新規作成

6.【代入】をドロップ

検索ボックスに入力するワードを作成

[プロパティ]の設定
[右辺値]:「BookTitle + “ ” + Author」
[左辺値]:変数「SearchWord」を新規作成

7.【文字を入力】をドロップ

サイトにアクセスし、検索ボックスを選択する

[プロパティ]の設定
[テキスト]:変数「SearchWord」を選択

8.【クリック】をドロップ

検索ボックスの検索ボタンを選択する

9.【アンカーベース】をドロップ

検索結果の本のタイトル名をクリック

[アンカー]に、【画像を探す】をドロップし、[本]の画像を選択
[アクティビティ]に、【クリック】をドロップし、タイトル名を選択

10.【テキストを取得】をドロップ

ランキング情報が表示された箇所を選択


11.【条件分岐】をドロップ

ランキング情報(ランキング外)が取得できなかった際の対応

[Condition]:Ranking.Contains(“ランキング”)
→ランキング外の場合は、「ランキング外」と表示される為、含まれている場合…
※「Contains」メソッド→文字列が含まれているかチェックする。
文字列変数.contains(“検索したい文字列”)

[Then]内に、【代入】をドロップ

[プロパティ]の設定
[右辺値]:「”ランク外です”」
[左辺値]:変数「Ranking」を新規作成

[Elce]内に、【代入】をドロップ

[プロパティ]の設定
[右辺値]:「Ranking.Split(“第(”.ToCharArray)(1)」
[左辺値]:変数「Ranking」を選択
※「Split」メソッド→文字列を指定した文字で分割。
例【登録番号:1234】が作成されました。
→文字列変数.Split(“:】”.ToCharArray)(1)
→「1234」を抽出

12.【代入】をドロップ

→チャットワークへ投稿文用
[プロパティ]の設定
[右辺値]:「”週間ランキング” + “:” + BookTitle + “|” + Ranking」
[左辺値]:変数「Post_ChatWork」を新規作成

12.【HTTP要求】をドロップ

チャットワークのグループにランキング情報を投稿

※[API Token]を取得
→チャットワークの[サービス連携]から取得できます。

HTTP要求ウィザード

[エンドポイント]:https://api.chatwork.com/v2/rooms/********/messages
[要求メソッド]:POST
[パラメーター]:ヘッダーを追加
名前:X-ChatWorkToken
値:取得した[API Token] 型:HttpHeader

名前:body
方向:入力
型:String
値:変数「Post_ChatWork」を選択

13.【Excelアプリケーションスコープ】をドロップ

→取得したランキング情報を書き込む

14.【Excelアプリケーションスコープ】内に、【セルに書き込み】をドロップ

[プロパティ]の設定
[シート名]:”リスト”
[範囲]:”C” + (Count+2).ToString
→2行目からの書き込みになるので、+2
[値]:Ranking

15.「代入」をドロップ

→次の行の処理の為に、値を1つ増やす。

16.【タブを閉じる】を、【繰り返し(各行)】の外にドロップ

実行結果

Excelのランキング列に順位が書き込まれました

チャットワークにランキング情報が投稿されました