#24

Google Mapsの口コミを自動的に収集(スクレイピング)し、多角的な視点から分析・可視化するためのChrome拡張機能です。

技術的な構成要素と、各ファイルが担っている役割について解説します。


1. 全体アーキテクチャ

このプロジェクトは、Google Chromeの拡張機能規格である Manifest V3 に基づいて構築されています。
主に3つの層で構成されています。

  1. UI層 (popup.html/js):
    ユーザーが分析を開始するためのインターフェース。
  2. 収集層 (content.js):
    Google Mapsのページに介入し、口コミデータを抽出するエンジンの役割。
  3. 分析・表示層 (dashboard.html/js):
    収集したデータを統計処理し、グラフやレポートとして表示するエリア。

2. 技術的ハイライト

① 動的なデータ収集ルーチン (content.js)

Google Mapsは要素が動的に読み込まれるため、以下の高度な制御を行っています。

  • オートスクロール機能:
    口コミコンテナの scrollHeight を監視しながら、設定された件数に達するまで自動でスクロールを繰り返します。
  • 要素解析(セレクタ・エンジニアリング):
    h1.DUwDvf などの複雑なクラス名を使い、店名、評価、投稿日、本文、ローカルガイド情報、オーナーの返信などを精密に抽出します。
  • 相対日付の解決 (parseRelativeDate):
    「3ヶ月前」「1年前」といった相対的な表記を、実行時の日付から逆算して「YYYY-MM-DD」形式の絶対日付に変換して記録します。

② 7つの観点による多角分析ロジック (dashboard.js)

収集した生データに対し、事前に定義された辞書(KWオブジェクト)を用いて、以下の7つの分析を実行します。

  1. 定量的分析 (analyzeQuantitative):
    平均スコアの推移(直近3ヶ月 vs 全体)や、評価の二極化(5点と1点に偏っていないか)を計算。
  2. 定性的分析 (analyzeQualitative):
    ポジティブ・ネガティブキーワードの出現頻度を算出。
  3. 5領域分析 (analyzeFiveElements):
    「商品・サービス」「接客」「価格」「空間」「利便性」の5つのカテゴリーごとに満足度をスコアリング。
  4. 時系列トレンド (analyzeTimeTrends):
    月別の投稿頻度や、曜日・時間帯による評価の差異を判定。
  5. レビュアー属性 (analyzeReviewerAttributes):
    信頼性の高い「ローカルガイド」による投稿比率や、写真付き投稿の割合を分析。
  6. 競合比較 (analyzeCompetitive):
    「他店」「と比較して」といったキーワードを含む口コミを抽出し、独自の強みを特定。
  7. 返信品質分析 (analyzeOwnerResponse):
    全体の返信率に加え、低評価に対する返信率や、返信内容が「定型文(テンプレート)」になっていないかを自動判定。

③ データの永続化と連携

  • content.js で収集されたデータは、一度 chrome.storage.local に保存されます。
  • その後、自動的に dashboard.html が開き、保存されたデータを読み込んでレンダリングします。これにより、ページを跨いだデータの受け渡しを実現しています。

④ ビジュアル・プレゼンテーション (dashboard.css)

  • 外部ライブラリ(Chart.js等)に頼らず、純粋なCSSとJavaScript(Vanilla JS)でカスタムチャートを実装しています。
  • conic-gradient を用いたドーナツチャートや、CSS変数を用いたバーチャートなど、モダンで軽量なUIを実現しています。

3. ファイル別の役割まとめ

ファイル名役割
manifest.json拡張機能の定義ファイル。権限(storage, scripting, activeTab)を設定。
popup.html/js操作パネル。Google Maps上にいるかを判定し、スクレイピングを開始させる。
content.js収集エンジン。タブ操作、スクロール、DOMからのデータ抽出を担当。
dashboard.js分析・統計ロジック。キーワードマッチングや満足度計算のコア。
dashboard.html/css分析レポートの構造とデザイン。ダッシュボード形式のレイアウトを提供。

このシステムは、単なるデータの取得に留まらず、店舗運営における「改善ポイントの自動抽出」をターゲットとした、高度なデータ分析ツールとして設計されています。

Leave a Reply

Your email address will not be published. Required fields are marked *

Don`t copy text!