Google Maps 评论抓取工具

Google Maps 评论抓取工具读取一个商家 ID 的公开评论:正文、评分、日期、作者和店主回复,每页最多 100 条。导出该页,或通过 API 读取。

运行之前 · 实时调研需要配置数据源。示例数据均有标注。付费套餐尚未开放。

什么是 Google Maps 评论抓取工具?

Google Maps 评论抓取工具(Google Maps reviews scraper)针对一个商家 ID 读取公开评论:正文、评分、日期、作者和店主回复,每页最多 100 条。它不按类别搜索商家。您可以导出这一页,或用单独的预算再请求一页。

每条评论中的字段

字段因评论而异。只有当数据源返回某个字段时,该字段才会显示;字段为空并不能证明该信息不存在。

三步完成 Google Maps 评论抓取与导出

  1. 选择商家

    在“探索商家”中搜索并打开一个商家,然后在“准备后续任务”下选择“评论集”。也可以选择“评论集”并粘贴商家 ID。

  2. 设置页面,然后运行

    选择评论排序和可选的评论文本筛选,评论数量最多设为 100 条。确认最大单位数后再运行。

  3. 获取更多页面并导出

    打开“结果页”,每次多获取一页,每页使用各自的预算。下载 CSV、Excel、JSON 或 JSONL,或将各页合并为一次全链导出。

如需对多个商家进行 Google Maps 评论抓取,请在“探索商家”中选中这些商家,然后选择“在批量研究中为所选项收集评论”。每个商家成为一个任务,共用一个总预算。

Google Maps 评论 API

用商家 ID 和明确的单位预算创建 Google Maps 评论抓取任务,然后逐页读取评论。读取已存储的评论绝不会发起新的调研。

在 MCP 客户端中,先使用 estimate_job,再使用固定的 idempotency_key 和 max_units 调用 create_job,并通过 get_job_results 读取结果。对于下一页,preview_provider_continuation 会返回需要授权的确切任务。

curl -X POST https://mapsscraper.dev/api/v1/jobs \
  -H "Authorization: Bearer $MAPSSCRAPER_API_KEY" \
  -H "Idempotency-Key: reviews-sample-business-001" \
  -H "X-Max-Units: 1" \
  -H "Content-Type: application/json" \
  -d '{"kind":"reviews","business_id":"sample-business-id","limit":100,"review_options":{"sort_by":"newest"}}'

HTTP/1.1 202 Accepted
{"id":"6f1c2b3a-0000-4000-8000-000000000000","status":"queued","reserved":1}

curl "https://mapsscraper.dev/api/v1/jobs/6f1c2b3a-0000-4000-8000-000000000000/results?offset=0&limit=100" \
  -H "Authorization: Bearer $MAPSSCRAPER_API_KEY"

示例响应(已缩略)。数值仅作示意,并非真实商家数据。

{
  "items": [
    {
      "review_id": "sample-review-id",
      "business_id": "sample-business-id",
      "review_text": "Friendly staff and a short wait.",
      "rating": 5,
      "review_language": "en",
      "author_name": "Sample Reviewer",
      "owner_response_text": "Thank you for visiting.",
      "like_count": 2,
      "_source": {
        "provider": "live_maps",
        "fetched_at": "2026-11-01T12:00:00Z"
      }
    }
  ],
  "count": 1,
  "offset": 0,
  "next_offset": null,
  "provider": "live_maps",
  "coverage": "bounded_sample",
  "fetched_at": "2026-11-01T12:00:00Z"
}

MCP create_job 工具的参数

{
  "task": {
    "kind": "reviews",
    "business_id": "sample-business-id",
    "limit": 100,
    "review_options": {
      "sort_by": "newest"
    }
  },
  "idempotency_key": "reviews-sample-business-001",
  "max_units": 1
}

Python 示例

创建 Google Maps 评论抓取任务,等待完成后读取评论,再预览下一页。提交下一页是一个单独的付费任务。

import os
import time
import uuid

import requests

API = "https://mapsscraper.dev/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['MAPSSCRAPER_API_KEY']}"}


def run(task, units):
    # Keep the key: a retry of the same page must send it again.
    key = str(uuid.uuid4())
    job = requests.post(
        f"{API}/jobs",
        json=task,
        headers={**HEADERS, "Idempotency-Key": key, "X-Max-Units": str(units)},
        timeout=30,
    )
    job.raise_for_status()
    job_id = job.json()["id"]
    while True:
        status = requests.get(f"{API}/jobs/{job_id}", headers=HEADERS, timeout=30).json()["status"]
        if status not in ("queued", "running"):
            return job_id, status
        time.sleep(5)


task = {"kind": "reviews", "business_id": "sample-business-id", "limit": 100,
        "review_options": {"sort_by": "newest"}}
units = requests.post(f"{API}/estimate", json=task, headers=HEADERS, timeout=30).json()["units"]
job_id, status = run(task, units)

if status in ("completed", "partial"):
    page = requests.get(
        f"{API}/jobs/{job_id}/results",
        params={"offset": 0, "limit": 100},
        headers=HEADERS,
        timeout=30,
    ).json()
    for review in page["items"]:
        print(review.get("rating"), review.get("review_text"))

    # The next source page is a separate paid task: preview it, then submit
    # its exact task only if you need it.
    preview = requests.get(f"{API}/jobs/{job_id}/continuation", headers=HEADERS, timeout=30).json()
    if preview["available"]:
        run(preview["task"], preview["units"])

导出格式

CSV

可在任何电子表格中打开。以 =、+、- 或 @ 开头的文本会加上撇号前缀,避免电子表格将其作为公式执行。

Excel (XLSX)

适用于 Excel 或 Google 表格的工作簿,适合约 5 MB 以内的结果。更大的结果请使用 JSON Lines。

JSON

完整结果,包含每条记录的来源、获取时间以及任务的覆盖范围。

JSON 行

每行一条评论,适用于大文件和数据管道。

费用与限制

Google Maps 评论抓取按页预留单位:每页最多 100 条评论,无论实际返回多少条,都预留一个单位。失败、已取消和结果不确定的任务不收费。读取、导出和合并已有页面不消耗单位。

单个商家的页面链会在达到工作区页数上限(默认 20 页,最多 100 页)或数据源没有下一页时停止。

价格

资源

Google Maps 评论抓取常见问题

文档
这是 Google Places API 吗?

不是。MapsScraper.dev 是一项独立服务,与 Google 没有关联。结果来自第三方商家数据源,并采用我们自己的 JSON 格式。

一个商家可以收集多少条评论?

每页最多 100 条评论。之后每一页都是独立的 Google Maps 评论抓取任务和预算,直到数据源没有下一页或达到工作区页数上限为止。商家显示的评论数可能多于数据源返回的数量。

Google Maps 数据采集合法吗?

我们无法提供法律建议。收集和使用商家数据是否合法,取决于您所在的地区、收集的内容、使用目的以及适用的条款。仅凭公开可得,并不意味着获得了存储、转售或联系相关人员的许可。 阅读我们的数据政策

下一份名单,从一个地点开始。

先用明确标注的示例记录体验流程,再连接工作区进行实时调研。

查看示例