Power Automate DesktopでECサイトの新規レビューを収集→ChatGPTで感情判定→Excelに記録する自動化ロボの作り方

  • URLをコピーしました!
目次

🎯 目的

  • ECサイトのレビュー一覧ページからレビュー本文を抽出
  • run_log.csv と照合して新規レビューだけを抽出
  • ChatGPT(Web版)に感情判定プロンプトを入力して実行
  • 結果(本文/判定結果/実行日時)をExcelに追記
  • API不要、Web操作だけで完結する構成!

📦 構成ファイル(推奨構成)

ReviewSentimentBot/
├─ main_flow.padx
├─ modules/
│   ├─ ScrapeReviews.padx         ← レビュー抽出
│   ├─ CheckNewReviews.padx       ← 差分判定
│   ├─ AnalyzeSentiment.padx      ← ChatGPT連携
│   ├─ WriteToExcel.padx          ← 結果記録
│   └─ WriteToRunLog.padx         ← run_log更新
├─ data/
│   ├─ run_log.csv                ← レビューID既読管理
│   ├─ sentiment_results.xlsx     ← 出力先Excel
│   ├─ prompt.txt                 ← ChatGPTプロンプトテンプレ
├─ config.json                    ← 設定(対象URL、時間など)

📄 run_log.csv(例)

レビューID,取得日時
rev_12345,2025/09/10 09:30
rev_12346,2025/09/11 09:30

📄 sentiment_results.xlsx(出力形式)

レビューIDレビュー本文判定結果処理日時
rev_12347商品が届かない…ネガティブ2025/09/11

📄 prompt.txt(プロンプトテンプレ)

以下の顧客レビューが「ポジティブ」「ネガティブ」のどちらかを判定してください。

【レビュー】  
{{REVIEW_TEXT}}

回答形式:  
判定:ポジティブ または ネガティブ
理由:簡潔に説明

🛠 フロー全体の流れ(概要)

[1] ECサイトのレビュー一覧をクロール(ScrapeReviews)
 ↓
[2] run_log.csvと照合して新規レビューだけ抽出(CheckNewReviews)
 ↓
[3] ChatGPTにテンプレプロンプト+レビュー文を入力 → 返答取得(AnalyzeSentiment)
 ↓
[4] 結果を sentiment_results.xlsx に追記(WriteToExcel)
 ↓
[5] run_log.csv にレビューIDを記録(WriteToRunLog)

🛠 実装手順(初心者向けに解説)


✅ STEP1:レビュー一覧を抽出(ScrapeReviews.padx)

1. ChromeでECサイトのレビュー一覧ページを開く

(例:https://example.com/products/123/reviews

2. UI要素からレビュー要素を抽出

  • レビューID(例:data-review-id="rev_12345"
  • 本文 → div.review-bodyspan.comment-text など

3. 1レビュー = 1レコード(レビューID+本文)としてリスト化

[
  {"id": "rev_12347", "text": "この商品すごく気に入っています!"},
  {"id": "rev_12348", "text": "全然届きません。詐欺ですか?"}
]

→ 出力:AllReviews


✅ STEP2:新規レビューだけを抽出(CheckNewReviews.padx)

1. run_log.csv を読み込み → ReadLogList

2. 比較処理:

  • AllReviews の中で idReadLogList に存在しないものだけ抽出
If Review["id"] NOT IN run_log.csv → NewReviews に追加

→ 出力:NewReviews


✅ STEP3:ChatGPT連携で感情分析(AnalyzeSentiment.padx)

1. 新しいタブで ChatGPT のカスタムGPTページを開く

(例:https://chat.openai.com/g/g-abc123/sentiment-analyzer

2. prompt.txt を読み込み

{{REVIEW_TEXT}}Review["text"] に置換

3. テキストボックスに貼り付け → Enterで送信

4. 応答テキストを読み取る

  • 「判定:ポジティブ」などの箇所を抽出

5. 結果構成:

{
  "id": "rev_12347",
  "text": "この商品すごく気に入っています!",
  "sentiment": "ポジティブ",
  "datetime": "2025/09/11 10:00"
}

→ 出力:AnalyzedResults


✅ STEP4:Excelに結果追記(WriteToExcel.padx)

ファイル:sentiment_results.xlsx

  • 1行に1レビューを以下の構成で追加

| レビューID | レビュー本文 | 判定結果 | 処理日時 |

→ 「Excelに行を追加」で AnalyzedResults を一括出力


✅ STEP5:run_log.csvにID記録(WriteToRunLog.padx)

  • AnalyzedResults の各レビューIDを、現在日時とともに run_log.csv に追記
rev_12347,2025/09/11 10:00

✨ 補足Tips


✅ 安定したプロンプト送信のコツ

  • テキスト入力欄 → DOM取得不可なら TAB→Ctrl+V+Enter で対応
  • 応答取得 → 「回答形式」指定で正規表現抽出が楽になります

✅ セレクタが崩れたときの対処

要素代替手法
レビューDOMinnerText+正規表現で抽出も可能
ChatGPT応答回答パターンを固定すれば「文字列一致」で対応可

✅ 差分判定を厳密にしたい場合

  • レビューID+本文のハッシュ値を run_log.csv に保存すると「編集済みレビューの再取得」にも対応可能です

🧪 テスト手順(3分で確認)

  1. テストレビューを2件登録(実際のサイト or HTMLダミー)
  2. run_log.csv を空にする
  3. フローを実行
  4. ChatGPTにメッセージが送られるか確認
  5. sentiment_results.xlsx に1件ずつ追加されているか確認
  6. 再実行して「同じレビューは処理されない」ことを確認

❓ よくある質問(FAQ)


Q1. ChatGPTの応答が崩れることは?

A. あります。テンプレプロンプトで「判定:●●」と明示すれば、判定文のパースが安定します。


Q2. APIを使った方が早くない?

A. APIは便利ですが、ChatGPTのCustom GPTを非開発者でも使えるようにRPAで操作する方法は導入が簡単です(トークン管理も不要)。


Q3. Excelが開いてても大丈夫?

A. 閉じたブックから読み書きするアクション を使えば、ユーザーがExcelを開いていても影響しません。


Q4. 毎朝自動で動かしたい

A. Windowsタスクスケジューラで、PADフローを 平日9:00に自動起動できます(GUIで簡単に設定可能)。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次