google-maps-scraper
gosom/google-maps-scraper加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象你是一名销售,想找北京市所有川菜馆的电话和地址;或者你是一个市场调研员,需要整理上海所有汽车4S店的信息。如果一个个手动搜索复制粘贴,那工作量将是灾难级的。Google Maps Scraper 就是来解决这个问题的——它能自动帮你从 Google Maps 上批量抓取商户名称、电话、地址、评分、评论、邮箱、经纬度等 33+ 个字段,而且完全免费、开源。

这个项目诞生于 2023 年,作者 gosom 是一个经常需要获取商户联系方式的开发者。商业级的地图数据采集工具要么收费高昂(如 Apify),要么不稳定、易被封禁。开源社区虽然有一些 Python 脚本,但大多数都是"一次性玩具"——无法处理反爬、无法规模化。
gosom 用 Go 语言重写了整个爬虫框架,核心依赖 Playwright 驱动真实浏览器绕过反爬机制,同时利用 Go 的并发优势实现高吞吐量。经过两年多迭代,项目已积累超过 6,600 个 GitHub Stars,成为该领域最受欢迎的开源工具之一。
这个项目最聪明的地方在于它提供了三种使用方式,覆盖从个人用户到企业团队的全部场景:
localhost:8080,可视化操作采集能力令人印象深刻,除了常见的名称、地址、电话外,还支持:
| 字段类型 | 具体内容 |
|---|---|
| 基础信息 | 营业时间、营业状态、均价区间、图片 |
| 联系方式 | 网站 URL、电话、邮箱(通过爬取商户网站提取) |
| 评价数据 | 评分、评论数量、按星级分布、用户评论原文 |
| 位置信息 | 经纬度、Plus Code、Street View URL |
| 业务详情 | 预订链接、外卖链接、菜单链接 |
项目 README 明确标注:在 -c 8 -depth 1 配置下,吞吐量可达 ~120 条/分钟。这个速度对于绝大多数使用场景都绑绑有余。
规模化方面,项目支持:
内置 SOCKS5/HTTP/HTTPS 代理轮换机制,配合 Playwright 的隐身模式,能有效降低被 Google 封禁的风险。不过说实话,爬 Google 本身就是个猫鼠游戏,项目文档也坦诚地没有提及如何应对 Google 的服务条款。
从代码结构来看,这个项目的工程化程度相当高:
scraper/ → 爬虫核心逻辑
gmaps/ → Google Maps API 交互
httpext/ → HTTP 扩展(重试、代理、超时)
grid/ → 分布式网格
rqueue/ → 消息队列
postgres/ → 数据库集成
saas/ → 多租户 SaaS 模式
skills/ → AI Agent 技能定义
核心依赖 scrapemate(同样是 gosom 的作品)是整个爬虫框架的引擎,提供任务调度、代理轮换、并发控制等功能。数据持久化层使用 pgx 连接 PostgreSQL,支持流式写入避免内存溢出。
代码风格遵循 Go 社区最佳实践:标准库优先、context.Context 贯穿全链路、struct tag 标注 JSON 字段名、gofmt 统一格式化。测试覆盖也比较完整,make test 可运行全部单元测试。
mkdir -p gmaps-output
docker run \
-v gmaps-playwright-cache:/opt \
-v "$PWD/example-queries.txt:/queries.txt:ro" \
-v "$PWD/gmaps-output:/out" \
gosom/google-maps-scraper \
-input /queries.txt \
-results /out/results.csv \
-depth 1 \
-exit-on-inactivity 3m
查询文件每行一个关键词,比如:
北京 川菜馆
上海 汽车4S店
深圳 健身房
docker run -v "$PWD/gmapsdata:/gmapsdata" -p 8080:8080 gosom/google-maps-scraper
然后浏览器打开 http://localhost:8080,界面化创建任务、查看进度、下载结果。
⚠️ 注意:结果至少需要 3 分钟才会出现(系统设计了最短运行时间)。
需要 Go 1.26.6+:
git clone https://github.com/gosom/google-maps-scraper.git
cd google-maps-scraper
go mod download
go build ./cmd/google-maps-scraper
./google-maps-scraper -input example-queries.txt -results results.csv
反爬风险无法规避。虽然 Playwright 能模拟真实浏览器,但 Google 的反爬策略在持续升级,项目需要频繁更新以应对。建议生产环境务必配置代理池。
法律合规问题。项目 README 对 Google 服务条款只字未提。Google Maps 的数据使用有明确的服务条款限制,将采集数据用于商业销售可能存在法律风险。个人用户请务必了解当地法规。
邮箱提取是双刃剑。-email 选项会爬取商户网站提取邮箱,这不仅大幅增加运行时间,还可能触达反爬更严格的网站,成功率不稳定。
在开源地图采集工具中,Google Maps Scraper 无疑是功能最全面、工程化程度最高的选择。它不只是一个爬虫脚本,而是一套完整的、数据采集到存储的解决方案。CLI/Web UI/REST API 三位一体的设计让各种技术背景的用户都能快速上手。
如果你需要的是快速获取一批商户联系方式用于个人研究或内部调研,这是目前最值得推荐的开源方案。如果你要做大规模商业化采集,还需要额外考虑代理成本和法律合规。