

Google Maps Scraper V1.2
这款谷歌地图数据爬取工具能够从谷歌地图平台提取各类公开的地点相关数据,涵盖多维度信息,满足商业调研、市场分析、出行规划等多样化需求。可获取的数据包括:
为便于后续对数据进行分析、管理和应用,爬取结果支持以下两种结构化数据格式导出:
是的,本工具获取的数据100%实时且最新。
每一次爬取请求都会直接从谷歌地图服务器拉取最新的公开数据,不依赖任何本地缓存或第三方数据仓库。这确保你获取的评分、评论、营业时间、营业状态等信息与谷歌地图平台展示的内容完全同步,有效保障数据的时效性和准确性,为决策提供可靠依据。
以下示例展示公共结构化输出。重复值保留在数组或对象内,不再额外拆成带序号的顶层字段。
当前 UI 入参契约已与 input_schema.json 对齐:max_results 为必填。keywords 默认必填,但当 scrape_all_places 设为 enabled 时改为需要提供位置(base_location、结构化位置字段或 custom_geojson)。其余位置字段和增强开关均为可选。
基础位置 base_location 可选 文本类型
描述:关键词搜索使用的自由文本地区。建议每次运行只填写一个简洁位置,例如城市 + 国家,或州/省 + 国家。填写 custom_geojson 或结构化 country/state/city/county/postal_code 时,该字段可以为空。
关键词搜索的范围优先级为:custom_geojson > base_location > 结构化 country/state/city/county/postal_code。如果填写了 custom_geojson,它会作为最高优先级搜索范围,base_location 不会覆盖用户自定义区域。
关键词 keywords 可选 字符串列表
描述:字符串搜索词列表,格式为 {"keywords": ["bar", "club"]}。脚本只读取数组中的第一个元素,并结合搜索区域发起 Google Maps 查询。当 scrape_all_places 设为 enabled 时,本字段填写的任何内容都会被忽略。
地点分类 place_categories 可选 字符串列表
描述:当使用 keyword 搜索时,可用于在 Google Maps 分类标签较可靠时缩小结果范围的可选筛选项。当 scrape_all_places 为 enabled 时,该字段将改为作为类别扫描的种子/覆盖列表(参见 resources/place_categories_top500.json)。
语言 lang 可选 文本类型
描述:文本的源语言。
参数值:
最大结果数 max_results 必填 数字类型
描述:每个关键词需要获取的地点数量,默认值为 20,最终导出数据不会超过该硬上限。多边形区域的关键词搜索会先完成根网格的广域覆盖,再动态预留 30%-50% 的结果容量用于密度优先下钻;高密度城市会更早查询,但单一热点不会独占任务。数值越大,整体处理时间越长。
是否抓取评论 fetch_reviews 可选 布尔类型
描述:控制是否需要为每个地点抓取评论。默认值为 false。当值为 false 时,系统会跳过评论数据采集,以尽量缩短整体抓取时间。
单地点最大评论数 max_reviews_per_place 可选 数字类型
描述:该参数可限制为每个地点爬取的最大评论数量,只有在 fetch_reviews 为 true 时才会生效;如果不填写,默认每个地点抓取 5 条;超过 1000 时会按单地点 1000 条裁剪。
评论排序 review_sort_by 可选 文本类型
描述:fetch_reviews 为 true 时生效。支持 newest、oldest、highestRating、lowestRating、mostRelevant。
评论关键词 review_keyword 可选 文本类型
描述:fetch_reviews 为 true 时,用于优先匹配包含关键词的评论。脚本最多扫描 min(1000, max_reviews_per_place * 4) 条候选评论进行关键词匹配;如果命中数量不足,会用未命中的评论补齐,优先使用已经扫描过的缓存候选,缓存不够时才继续请求普通评论。输出前会对匹配评论和补齐评论去重。
包含评论者信息 include_reviewer_info 可选 布尔类型
描述:控制是否抓取评论者姓名、主页 URL、主页 ID、头像 URL、评论数量和照片数量等公开信息。默认值为 false。
稳定性限制:
max_results 会被裁剪到安全上限。max_reviews_per_place 会被裁剪到单地点 1000 条的安全上限。是否抓取社媒信息 fetch_social_info 可选 布尔类型
描述:访问商家官网提取公开邮箱和社交主页。每个平台分别输出顶级 URL 数组(如 facebook: [])和顶级详情对象(如 facebook_profiles: {});不再导出带序号的内部链接字段和 social_media。
LinkedIn 人员补充数量 max_leads_per_place 可选 数字类型
描述:控制每个地点返回多少条 LinkedIn 人员补充数据。默认值为 2;设为 0 时不展示 leads_enrichment。当值大于 0 时,即使社媒输出关闭,也会尝试为匹配到的公司补齐人员线索。每条 lead 使用 snake_case 键,并在可用时同时包含 seniority 和 seniority_tier。
LinkedIn 人员职级筛选 leads_seniority 可选 文本类型
描述:可选。用于限制人员补齐的职级范围,例如 c_suite,vp,director;留空表示不限制职级。
邮箱验证 email_verification 可选 布尔类型
描述:默认关闭。开启后验证 all_emails 中前四个邮箱,并输出到 email_status.email_1 至 email_status.email_4;LinkedIn 人员邮箱状态保留在各自的 leads_enrichment 项内。
流水线说明:结果现在使用 upsert_data(row, "data_id") 分阶段更新。列表占位行会先按 search_rank 写入,详情、联系方式、网页搜索、评论、社媒信息和邮箱验证完成后再补到同一行。
运行环境说明:只需修改 main.py 文件开头的 RUNTIME_ENVIRONMENT。设为 production 时读取平台注入的 PROXY_DOMAIN,并仅输出参数、校验、错误和完成摘要;设为 test 时固定使用 proxy-inner.coreclaw.com:7000,同时开启采集/增强链路与底层诊断的详细日志。
社交媒体账号数据增强 fetch_social_detail_info 可选 对象类型
描述:Facebook、Instagram、YouTube、TikTok 和 LinkedIn 开关分别控制对应平台的账号富化。链接始终保存在平台同名的顶级数组中,例如 facebook;开启后,所有保留平台前缀的详情字段会加入顶级 <platform>_profiles 对象,关闭时该对象为空。Twitter 没有账号富化开关,因此 twitter_profiles 为空,链接保存在 twitter。
开启 Facebook 主页抓取 facebook 可选 布尔类型
描述:开启后,脚本会访问已发现的 Facebook 主页链接,并在顶级 facebook_profiles 对象内增加 facebook_* 详情字段。
开启 Instagram 主页抓取 instagram 可选 布尔类型
描述:开启后,脚本会访问已发现的 Instagram 主页链接,并在顶级 instagram_profiles 对象内增加 instagram_* 详情字段。
开启 YouTube 频道抓取 youtube 可选 布尔类型
描述:开启后,脚本会访问已发现的 YouTube 频道链接,并在顶级 youtube_profiles 对象内增加 youtube_* 详情字段。
开启 TikTok 主页抓取 tiktok 可选 布尔类型
描述:开启后,脚本会访问已发现的 TikTok 主页链接,并在顶级 tiktok_profiles 对象内增加 tiktok_* 详情字段。
开启 LinkedIn 主页抓取 linkedin 可选 布尔类型
描述:开启后,脚本会访问已发现的 LinkedIn 公司或主页链接,并在顶级 linkedin_profiles 对象内增加 linkedin_* 详情字段。以上五个社媒详情开关归属于 Fetch Social Info 分组,只在官网或详情中发现对应主页 URL 后执行。
抓取地点详情页 fetch_place_details 可选 布尔类型
描述:开启后返回结构化的 opening_hours、price_range、popular_times、menu、booking_url 和 attributes。
抓取预定提供商数据 fetch_reservation_data 可选 布尔类型
描述:开启后返回 reservations: [] 和结构化的 reservation_data,供应商名称与 URL 保存在同一个 providers 项中;无数据时返回空数组或空对象。
获取是否在线下单 fetch_online_order 可选 布尔类型
描述:开启后返回 order_online: []、online_order_available、数组形式的 online_order_methods 和 menu。
网络搜索结果 fetch_web_result 可选 布尔类型
描述:开启后会用商铺名称、州和城市构建 Google 网页搜索请求,解析搜索结果并写入 web_results,用于补充商户相关信息。默认关闭。
输出说明:缺失的字符串类字段(text、string、url、date、datetime)统一导出为空字符串;数字字段保持 number 契约,缺失时仍为 null。
额外图片数量 max_images_per_place 可选 数字类型
描述:控制从 Google Maps 照片区域额外抓取的图片数量。基础图片使用 images: [],分页图片使用 place_images: [];默认值 0 表示不进行额外翻页。
包含图片作者 include_image_authors 可选 布尔类型
描述:当 max_images_per_place > 0 时生效。开启后,如果 Google 返回图片上传作者公开信息,会输出 author_name、author_profile_url 和 author_avatar_url。默认关闭。
顶层出参契约已与 output_schema.json 对齐,当前定义 72 个字段。嵌套数据保留在父级数组或对象中,例如 reviews[].text、email_status.email_1.status、instagram_profiles.instagram_username、reservation_data.providers[].url 和 images[].image_url。可点击链接使用 link,可直接展示的图片地址使用 image;URL 数组仍保持 array,并在 items.type 中标注语义类型。
| 字段 | 类型 | 说明 |
|---|---|---|
| title | string | 标题 字段 |
| primary_category | string | Google Maps 主类别。 |
| website | link | 网站 字段 |
| all_emails | array | 按发现顺序输出并按大小写不敏感去重的全部邮箱地址。 |
| email_status | object | 按 email_1 至 email_4 映射到 all_emails 同位置邮箱的验证结果。 |
| phone | string | 电话 字段 |
| address | string | 地址 字段 |
| review_rating | number | 评论评分 字段 |
| review_count | number | 评论数量 字段 |
| linkedin_profiles | object | LinkedIn 除 URL 外的账号富化详情;未启用时为空对象。 |
| description | string | 描述 字段 |
| all_categories | array | 按原始顺序输出的全部 Google Maps 类别。 |
| street | string | 街道 字段 |
| city | string | 城市 字段 |
| postal_code | string | 邮政编码 字段 |
| state | string | 州/省 字段 |
| country | string | 国家 字段 |
| location | object | 包含数值 lat 和 lng 的地理坐标。 |
| timezone | string | 时区 字段 |
| array | 规范化并去重后的 LinkedIn 主页链接。 | |
| array | 规范化并去重后的 Facebook 主页链接。 | |
| facebook_profiles | object | Facebook 除 URL 外的账号富化详情;未启用时为空对象。 |
| array | 规范化并去重后的 Instagram 主页链接。 | |
| instagram_profiles | object | Instagram 除 URL 外的账号富化详情;未启用时为空对象。 |
| array | 规范化并去重后的 Twitter 主页链接。 | |
| twitter_profiles | object | Twitter 除 URL 外的账号详情;不支持富化时为空对象。 |
| youtube | array | 规范化并去重后的 YouTube 主页链接。 |
| youtube_profiles | object | YouTube 除 URL 外的账号富化详情;未启用时为空对象。 |
| tiktok | array | 规范化并去重后的 TikTok 主页链接。 |
| tiktok_profiles | object | TikTok 除 URL 外的账号富化详情;未启用时为空对象。 |
| leads_enrichment | array | 使用 snake_case 嵌套键的 LinkedIn 人员富化结果;仅在 max_leads_per_place 大于 0 时输出。 |
| owner_name | string | 所有者名称 字段 |
| owner_id | string | 所有者 ID 字段 |
| owner_link | link | 所有者链接 字段 |
| rating_distribution | object | 以 rating_1 至 rating_5 为键的各星级评论数量。 |
| status | string | 状态 字段 |
| reviews | array | 启用“获取评论”时抓取的结构化评论项。 |
| reviews_link | link | 评论链接 字段 |
| price_range | object | 原始价格区间文本及解析后的最小值、最大值和货币符号。 |
| opening_hours | array | 按周一至周日顺序输出的可用营业时间记录。 |
| open_now | boolean | 该地点当前是否营业 |
| popular_times | array | 本地化的每周热门时段数据;每天按小时输出繁忙度(0-100)及可选的 Google 状态文本。 |
| popular_times_live_percent | number | 来自热门时段数据的当前繁忙度百分比。 |
| popular_times_live_text | string | 人类可读的当前繁忙度标签。 |
| popular_times_peak_day | string | 全周繁忙度最高的星期。 |
| popular_times_peak_hour | number | 繁忙度最高的小时(0-23)。 |
| popular_times_peak_value | number | 全周最高繁忙度值(0-100)。 |
| images_count | number | images 数组中有效图片记录的总数。 |
| images | array | 最多五条地点基础图片记录。 |
| thumbnail | image | 缩略图 字段 |
| place_images_count | number | 启用图片附加功能后采集到的额外地点媒体数量。 |
| place_images | array | 从 Google 地图照片区域采集的额外图片。元素包含 image_url 和可用的 published_at_date;include_image_authors=true 时可额外包含作者字段。 |
| reservations | array | 发现的全部预约链接及其来源。 |
| reservation_data | object | 预约可用性及正确配对的供应商记录。 |
| booking_url | link | 启用地点详情时提取的 Google Maps 预订链接。 |
| order_online | array | 发现的全部在线下单链接及其平台。 |
| online_order_available | boolean | 启用“在线下单”且 Google Maps 在数据路径 6/75/0 暴露 type 为 4 的在线下单区块时为 true。 |
| online_order_methods | array | 可用的在线下单方式列表。 |
| menu | object | 菜单链接及其来源。 |
| attributes | object | 按 Google Maps 属性分组的对象,所有分组与属性键均递归转换为 snake_case。 |
| source_keyword | string | 用户输入的搜索关键词 |
| source_location | string | 用户输入的搜索位置 |
| search_query | string | 完整搜索查询,通常为关键词加位置 |
| search_rank | number | 异步补充数据前的原始 Google Maps 搜索候选排名 |
| scraped_at | string | 抓取该行数据时的 UTC 时间戳,格式为 yyyy-mm-dd HH:MM:SS |
| place_id | string | Google Maps Place ID |
| data_id | string | 数据 ID 字段 |
| plus_code | string | Plus Code 字段 |
| url | link | URL 字段 |
| people_also_search | array | Google Maps 推荐的相关地点。 |
| web_results | array | 启用“网页搜索结果”时为该地点抓取的 Google 网页搜索结果。 |
| error_code | string | 参数校验或运行失败时的结构化错误类型,例如 PARAMETER_MISSING 或 BASE_LOCATION_ERROR;成功地点行为空。 |
搜索范围优先级:custom_geojson > base_location > 结构化 country/state/city/county/postal_code。如果填写了 custom_geojson,它会作为最高优先级搜索范围,base_location 可以为空,也不会覆盖用户自定义区域。
自定义 GeoJSON 搜索区域 custom_geojson
可粘贴 GeoJSON 搜索范围,支持 Polygon、MultiPolygon、FeatureCollection、Circle,以及带 radiusKm 的 Point。坐标顺序固定为 GeoJSON 标准 [longitude, latitude]。如果填写了无效 GeoJSON,会明确报错 CUSTOM_GEOJSON_ERROR,不会静默改扫其他区域。
结构化地点字段 country/state/city/county/postal_code
仅在 base_location 为空且未填写 custom_geojson 时使用。系统会把这些字段组合成地点查询,并解析中心点、bounds 和 GeoJSON。
列表阶段筛选 title_match_mode / min_rating / website_filter / skip_permanently_closed
这些筛选会在 Google Maps 列表粗略数据阶段执行,未通过筛选的候选不会进入详情和增强请求。title_match_mode 支持全部、标题包含搜索词、标题与搜索词完全一致;min_rating 支持 All、2+、2.5+、3+、3.5+、4+、4.5+;website_filter 支持全部、只抓取有官网、只抓取列表数据里没有官网;skip_permanently_closed 默认开启。如果筛选后数量不够,脚本会继续补查候选数据,直到达到目标或触发正常预算上限。
探索商店中更多热门采集工具
by CoreClaw
从 Google 地图批量提取商家数据——涵盖评论与评论者信息、图片、联系方式(全名、邮箱、职位)、营业时间、价格等。提取后,你可以导出数据、通过 API 触发运行、定时执行并监控,或把结果接入你常用的其他工具。
by CoreClaw
利用 Google 地图发现并收集具有销售潜力的本地商家潜在客户,这些潜在客户拥有公司简介、网站、电话号码、评论、决策者联系方式和已验证的电子邮件,可用于开展推广活动。
by CoreClaw
谷歌地图评论抓取工具能批量提取星级、文本、评论者信息、所有者回复及图片 URL。助您精准分析客户情绪,监控竞品,优化本地 SEO,全面提升业务声誉。支持关键词过滤与多语言翻译,数据结构化输出。