Google Maps Scraper 让 Agent 把地图上的商家整理成名单
用户要找某个城市某一类商家的公开信息(名称、地址、电话、官网、评分、评论,可选官网上的公开邮箱),用来做 B2B 获客、本地市场调研或竞品分析时,用这个 Skill。它来自 gosom/google-maps-scraper,MIT 许可,用 Go 写成,在用户电脑上通过 Docker 运行。仓库自带 Agent 用的 Skill。
触发
用户说"找出柏林所有的牙医""拉一份本地咖啡店名单""抓 Google 地图上的商家信息""收集某家店的评论""帮我做一份某地某行业的潜在客户表"。
不适合:
- 收集个人(非商家)的信息、私人联系方式。
- 要求绕过 Google 的访问限制、验证码,或者大规模高频抓取。
- 准备向名单里的人群发营销邮件,却不打算遵守当地法律(见硬性规则第 3 条)。
硬性规则
- 先说清风险。 开工前告诉用户:抓取 Google 地图可能违反 Google 的服务条款,账号或 IP 可能被限制;项目自己也在 README 里提醒"要按适用法律负责任地使用"。用户确认后再继续。
- 只要商家的公开信息。 不收集、不保存个人隐私数据;评论只用于分析,不把评论者的信息做成名单。
- 触达要守规矩。 用户要拿邮箱做冷邮件时,提醒:欧盟的 GDPR、美国的 CAN-SPAM 等法律对商业邮件有要求(如表明身份、提供退订、在欧盟往往需要正当理由),要带退订方式,控制发送量。不替用户群发。
- 从小开始。 先用一条查询做小样验证,默认浅层深度、低并发;结果数异常少时再考虑扩大范围。不帮用户规避 Google 的风控或验证码。
- 邮箱要清洗。 自动提取的邮箱会混进图片文件名之类的误判,交付前过滤掉格式不对、明显不是邮箱的条目,并标明"未验证"。
- 不显示凭据。 用户自己的代理账号只通过仓库脚本的本地掩码输入填写,不在对话里索取、不打印、不写进日志。
安装
先检查:
ls ~/.claude/skills/google-maps-scraper/SKILL.md ~/.agents/skills/google-maps-scraper/SKILL.md 2>/dev/null || echo "not installed"
docker --version; node --version
没装的话,说明要装一个 Skill(并会拉取 Docker 镜像),同意后:
npx skills add gosom/google-maps-scraper
需要 Docker 和 Node.js,支持 macOS、Linux,Windows 需在 WSL 里运行。装好后新开一个对话,Skill 会按自己的流程检查版本和镜像。
流程
- 问清三件事:要找的商家类型或搜索词、地点、覆盖范围(快速样本、普通搜索、整片区域)。默认英文、CSV、不提取邮箱、不抓额外评论、浅层深度。先用一句话复述配置。
- 小样验证:只用一条有代表性的查询跑一次,容器正常结束且有结果才算通过。
- 正式抓取:用完整查询文件运行,定期报告容器状态、已用时间和结果数,不承诺完成时间。
- 展示结果:报总数,最多预览 20 行(名称、类别、评分和评论数、电话、官网、地址,要了邮箱才显示邮箱)。
- 后续处理:按用户要求去重、过滤、按评分或评论数排序、导出;涉及邮箱时先做第 5 条硬性规则的清洗。
代理是可选项:大批量时项目会让用户选择用自己的代理、看赞助商推荐或不用代理。赞助商链接是推荐返利链接,要如实告诉用户。
能拿到的字段
| 类别 | 字段 |
|---|---|
| 基本信息 | 名称、类别、地址、经纬度、营业时间 |
| 联系方式 | 电话、官网;加 -email 时从官网页面找公开邮箱(耗时明显增加) |
| 口碑 | 评分、评论数、评论内容(要额外评论需另开选项) |
| 导出 | CSV、JSON,或写入 PostgreSQL、S3 |
输出格式
- 开工前:一句话配置摘要和风险提醒。
- 进行中:容器状态、已用时间、当前结果数。
- 完成后:结果文件路径、总数、前 20 行预览;邮箱标明是否已清洗、是否验证过。
一句话
先说清条款和法律风险,从一条查询的小样开始,只要商家公开信息,邮箱清洗后标明未验证。

评论(0)
还没有评论,来说第一句。