0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【実測】AIエージェント×MCPでGoogleマップの店舗情報を自動収集|20件を25秒だけで取得

0
Posted at

「渋谷区のカフェ情報を集めて、評価や口コミ件数で候補を絞り込みたい」。

AIエージェントにこうした作業を任せるには、Webサイトから必要なデータを取得し、後続の処理で利用できる形式に整える仕組みが必要です。

PythonやPlaywrightでスクレイピング処理を自作することもできますが、ページ操作やデータ抽出の実装に加え、実行環境の準備やメンテナンスにも手間がかかります。

そこで今回は、CodexにOctoparse MCPを接続し、既存の収集テンプレートを使ってGoogleマップの店舗情報を取得する方法を試しました。

2026年10月27日の検証では、店舗情報20件をクラウド収集時間25秒で取得。さらに、取得したJSONデータをPythonで処理し、「評価4.5以上・口コミ500件以上」に該当する5店舗を抽出できました。

この記事では、MCPの接続手順から実際のデータ収集、JSON・CSVへの整理、Pythonでの活用までを紹介します。

※25秒はOctoparseのクラウド収集時間であり、MCPの初期設定やファイル出力、データ処理にかかった時間は含みません。

1. AIエージェントにWebデータの収集機能を追加する

AIアプリケーションで現在の店舗情報を扱うには、Webから必要なデータを取得する仕組みが必要です。自前で実装する場合は、ページ操作、項目の抽出、実行環境の準備なども開発範囲に入ります。

Octoparse(オクトパース・オクトパス)のMCP連携を使うと、既存の収集テンプレートをCodexから呼び出せます。開発者は「どの地域の、どんな情報が必要か」を伝え、取得したデータをアプリの処理につなげられます。

役割分担はシンプルです。

構成 役割
Codex 日本語の依頼に沿って、収集ツールを呼び出す
MCP CodexとOctoparseを接続する
Octoparse テンプレートを使ってWebデータをクラウドで収集する
AI・Python 取得結果を整理・抽出・分析する

収集と後続処理をつなぐ考え方は、AIと収集ツールを組み合わせる実践例でも紹介しています。

2. 今回取得する店舗情報と使用環境

今回は、Google マップで「東京都渋谷区 カフェ」を検索し、1ページ分の店舗情報を収集しました。

項目 内容
AIクライアント Codexデスクトップ
手元で確認したCLI codex-cli 0.145.0
収集テンプレート Google Maps Store Listing Scraper (Japan)
検索キーワード 東京都渋谷区 カフェ
収集範囲 検索結果1ページ分
使用する項目 店舗名、住所、評価、口コミ件数、出典URL
収集方法 Octoparseのクラウド収集
データ処理 Python 3.14.6、標準ライブラリのみ

以下の接続手順は、テンプレート検索・実行に対応したOctoparse MCPサーバーを使う構成です。検証では接続済みのCodex環境を利用しました。

3. CodexにOctoparse MCPを接続する

Octoparseのアカウントを用意し、Codexから収集機能を呼び出せるようにします。ここではCLIで登録する方法を紹介します。

Step 1:MCPサーバーを登録する

ターミナルで次を実行します。

codex mcp add octoparse --url https://mcp.octoparse.com

接続先や認証方式については、Octoparseの公式設定例を参照できます。

Step 2:Octoparseにログインする

認証画面が開いたら、使用するOctoparseアカウントで認証します。認証を開始する場合は、次のコマンドを使います。

codex mcp login octoparse

Step 3:接続を確認し、Codexを開く

codex mcp list

登録したoctoparseを確認したら、Codexを開きます。CLIで操作する場合はcodexを起動し、対話画面の/mcpでも接続状態を確認できます。

Codexの設定については、公式のMCP接続手順も参考にしてください。ここまでで、収集の依頼を入力する準備ができました。

4. Codexに日本語で依頼し、店舗情報を収集する

screenshot-20261027-140656.png

接続後は、Codexの入力欄に取得したい情報をそのまま書きます。例えば、次のように依頼できます。

Octoparseを使って、Googleマップで「東京都渋谷区 カフェ」を検索し、1ページ分の店舗名・住所・評価・口コミ件数・出典URLを収集してください。対応するテンプレートを探して、クラウドで実行してください。

Codexは、ユーザーの日本語による指示をもとに、Octoparse MCP Serverのツールを呼び出します。

今回のように既存テンプレートを利用する場合、主な処理は次のとおりです。

search_templates:収集対象に対応するテンプレートを検索

execute_task:必要なパラメータを指定し、クラウド収集タスクを作成・実行

export_data:収集完了後のデータを出力する際に利用できるツール

今回はCodexから収集タスクを実行し、取得結果をOctoparseの管理画面で確認しました。その後、JSONファイルをダウンロードしてPythonで処理しています。

このように、AIエージェントによるツール操作と、Octoparseによるデータ収集、Pythonによる後続処理を分けて利用できます。

今回使用したのは「Google Maps Store Listing Scraper (Japan)」です。収集が完了したら、Codexの応答やOctoparseのタスクリストで結果を確認します。

screenshot-20261027-140858.png

地域や業種を変える場合も、依頼の検索条件を書き換える形で指定できます。

Googleマップで「新宿区 ベーカリー」を検索し、店舗名・住所・評価・口コミ件数を1ページ分収集してください。

5. 取得した店舗データを確認する

今回の収集では、20件の店舗情報を取得できました。主要項目をそろえた構造化データとして、そのまま次の処理へ渡せます。

項目 結果
取得したレコード数 20件
重複除去後のレコード数 20件
クラウド収集時間 25秒
評価4.5以上・口コミ500件以上の店舗 5件

25秒は管理画面に表示されたクラウド収集時間です。設定やファイル出力、後続の分析時間は含みません。取得日は2026年10月27日です。

取得したデータの一部を抜粋します。

店舗名 住所 評価 口コミ件数
ホワイトリー カフェ 東京都渋谷区神南1丁目6−14 4.5 661
松涛カフェ 渋谷本店 東京都渋谷区松濤1丁目29−24 4.6 1,191
note 東京都渋谷区渋谷2-10-15 4.6 726

住所は表示用に建物名などを省略しています。出力ファイルには取得した住所と出典URLを残しています。

6. JSON・CSVに出力して、AIやPythonで活用する

店舗情報をファイルに保存すると、アプリへの読み込み、候補店舗の絞り込み、レポート作成などに使えます。今回は管理画面からJSONを取得し、PythonでCSVへの出力と条件抽出を行いました。

JSON・CSVを取得する

Octoparse管理画面の「タスクリスト」から対象の収集結果を開き、「データをエクスポート」でJSONまたはCSVを選択します。「データ出力履歴」からファイルをダウンロードできます。

ここではJSONをraw.jsonとして保存します。後続の処理もCodexに依頼できます。

raw.jsonを読み込み、評価4.5以上かつ口コミ500件以上の店舗を抽出してください。店舗名・住所・評価・口コミ件数・出典URLをJSONとCSVに保存してください。

Pythonで候補店舗を抽出する

処理をコードとして残しておくと、別の地域のデータにも同じ条件を適用できます。以下は、今回取得したJSONで実行したコードです。追加パッケージは不要です。

import csv
import json
from pathlib import Path
from urllib.parse import urlsplit

raw = json.loads(Path("raw.json").read_text(encoding="utf-8-sig"))
stores, seen = [], set()

for row in raw:
    url = row.get("URL")
    if not url or not row.get("タイトル") or not row.get("住所"):
        continue
    key = urlsplit(url)._replace(query="", fragment="").geturl()
    if key in seen:
        continue
    try:
        rating = float(row["評価"])
        reviews = int(str(row["レビューの数"]).replace(",", ""))
    except (KeyError, TypeError, ValueError):
        continue
    seen.add(key)
    stores.append({
        "name": row["タイトル"], "address": row["住所"],
        "rating": rating, "review_count": reviews, "source_url": url,
    })

selected = [s for s in stores if s["rating"] >= 4.5 and s["review_count"] >= 500]
fields = ["name", "address", "rating", "review_count", "source_url"]

for name, rows in [("stores", stores), ("selected", selected)]:
    Path(f"{name}.json").write_text(
        json.dumps(rows, ensure_ascii=False, indent=2), encoding="utf-8"
    )
    with Path(f"{name}.csv").open("w", encoding="utf-8-sig", newline="") as f:
        writer = csv.DictWriter(f, fieldnames=fields)
        writer.writeheader()
        writer.writerows(rows)

print(f"収集データ: {len(stores)}件 / 条件に一致: {len(selected)}件")

filter_stores.pyとして保存し、raw.jsonと同じフォルダーで実行します。

python3 filter_stores.py

今回のデータでの実行結果は次のとおりです。

収集データ: 20件 / 条件に一致: 5件

stores.jsonとstores.csvには20件の店舗情報、selected.jsonとselected.csvには条件に合う5件が保存されます。

AIで結果を読み解く

絞り込んだデータをCodexに渡せば、条件に沿って候補を一覧化したり、次に確認したい項目を整理したりできます。

selected.jsonを読み、各店舗の評価と口コミ件数を比較する表を作ってください。次に、候補を絞り込むために追加で確認するとよい項目を提案してください。

MCPは収集機能への接続、Octoparseは店舗情報の取得、AI・Pythonは取得後の整理と分析を担当します。この分担で、収集したデータを次の開発作業につなげられます。

関連記事:

Claude Code MCPにWebスクレイピングを追加|Octoparseでノーコード×クラウド自動データ収集【設定〜cron自動化】

7.今回の検証で分かったOctoparse MCPのメリットと注意点

今回の検証では、CodexからOctoparse MCPを呼び出し、Googleマップの店舗情報20件を取得できました。実際に試してみて、開発者にとって特にメリットがあると感じたのは、次の3点です。

スクレイピング処理を一から実装せずにデータを取得できる

PythonやPlaywrightでGoogleマップの情報を取得する場合、ページ操作や必要な項目の抽出処理を実装する必要があります。

一方、今回の検証では、Octoparseの既存テンプレートを利用することで、店舗情報の抽出処理を自作せずに、Codexからクラウド収集を実行できました。

アプリ開発の目的がデータの分析や活用にある場合、収集処理を個別に開発する手間を減らせる点はメリットです。

収集環境を自前で構築せずにクラウドで実行できる

今回の店舗情報20件の収集には、Octoparseのクラウド環境を利用しました。管理画面に表示された収集時間は25秒でした。

自分でスクレイピング用のブラウザ環境や実行サーバーを準備する代わりに、既存のクラウド実行基盤を利用できます。

ただし、25秒は今回の条件での収集時間であり、初期設定やデータ出力にかかる時間は含まれません。 処理時間は対象サイトや収集条件によって変わります。

費用を開発・運用工数と合わせて考えられる

外部サービスの利用料だけでなく、収集処理の初期実装や、環境管理・修正にかかる工数も含めて比較すると、テンプレートを利用する価値を判断しやすくなります。利用するテンプレートやクラウド実行の条件は、日本向けの料金・利用条件とアカウントの表示を確認してください。Codexの利用料は別です。

収集後の処理を既存の開発フローへつなげられる

JSONをアプリで読み込む、CSVを分析用に使う、Pythonで条件抽出するなど、取得後の処理を自分のコードへつなげられます。収集に既存の機能を使いながら、業務に必要な処理は自分たちで組み立てられる構成です。

8.よくある質問

質問1:Octoparse MCPを使うメリットは?PythonやPlaywrightとの違いは?

PythonやPlaywrightを使えば、Webサイトから必要なデータを取得する仕組みを自分で開発できます。ただし、対象サイトの構造に合わせた処理の実装や、実行環境の構築、エラー対応、継続的なメンテナンスが必要になる場合があります。
Octoparse MCPでは、AIエージェントからOctoparseの既存テンプレートやクラウド収集機能を呼び出せるため、データ収集部分を一から開発する手間を減らせます。

一方、独自の処理を細かく制御したい場合や、既存のPythonコードをそのまま利用したい場合は、PythonやPlaywrightの方が適していることもあります。

質問2:Octoparse MCPとAPIはどう使い分ける?

MCPは、Claude CodeやCursorなどのAIエージェントから、自然言語による指示でデータ収集ツールを呼び出したい場合に適しています。

一方、APIは、Pythonなどのプログラムから明示的にリクエストを送り、タスクの実行やデータ取得を制御したい場合に向いています。

例えば、AIエージェントがユーザーの依頼に応じて収集対象を選択する場合はMCP、バックエンドから決まった処理を繰り返し実行する場合はAPIが選択肢になります。

どちらもOctoparseのデータ収集機能を利用できますが、連携方法や制御方式が異なります。

質問2:Octoparse MCPは無料で使える?料金はどう計算される?

無料アカウントから始められます。公式ヘルプセンターによると、フリー/ベーシックプランのユーザーは、MCP/API経由の抽出に毎週2,000レコードの無料トライアル枠が使えます(有料プランは対象外)。まずは小さなテンプレートで動作を確認するのがおすすめです(枠は変更される場合があるため、最新は公式ページでご確認ください)。

9.まとめ

今回はCodexにOctoparse MCPを接続し、Googleマップの店舗情報20件をクラウド収集時間25秒で取得しました。さらに、取得したJSONデータをPythonで処理し、条件に一致する5店舗を抽出しました。

今回の検証で確認できたのは、既存のスクレイピングテンプレートをAIエージェントから呼び出し、取得したデータを自分のコードで処理できるという点です。

Webデータの取得から分析まですべてを自作するのではなく、収集部分には既存の仕組みを活用し、アプリ固有の処理に開発リソースを集中する。Octoparse(オクトパース・オクトパス)MCP は、そうした開発スタイルを実現するための選択肢の一つです。

実際に試したい方は、Octoparse MCP Serverの公式ドキュメントから接続方法や利用可能なツールを確認できます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?