yaronbeen/bright-data-google-maps-scraper
GitHub: yaronbeen/bright-data-google-maps-scraper
一个零依赖的 Python 脚本,通过 Bright Data API 采集 Google Maps 商业数据,支持按地点发现或指定 URL 抓取。
Stars: 0 | Forks: 0
# Google Maps Scraper (Python) — 通过 Bright Data
[](https://github.com/yaronbeen/bright-data-google-maps-scraper/actions/workflows/tests.yml)

[](./LICENSE)
-brightgreen)
提取 **Google Maps 商业数据** — 包括名称、地址、电话、网站、评分、评论数、类别和坐标 — 只需一个无依赖的 Python 脚本,由 **[Bright Data](https://brightdata.com)** 维护的 Google Maps 数据集提供支持。仅获取公开数据;无需登录或 cookies。
- **零依赖** — 仅使用 Python 3.8+ 标准库
- **两种输入模式** — 按地点发现商家,或抓取特定的地点 URL
- **可选评论** — 获取每个地点的近期评论 (`--reviews`)
- **CSV 或 JSON** 输出 (`--format`)
- **Dry-run** 模式,用于验证输入和你的 API key,无需消耗额度
## 快速开始
```
# 1. 获取 Bright Data API key(免费层级:5,000 条记录/月,无需信用卡):
# https://brightdata.com/cp/setting/users
export BRIGHT_DATA_API_KEY="your-key"
# 2. 运行内置示例(NYC 咖啡店,LA 牙医,Chicago 水管工)
python google_maps_scraper.py
# 3. 先验证您自己的文件 — 不消耗 credit:
python google_maps_scraper.py locations.csv --dry-run
# 4. 正式运行
python google_maps_scraper.py locations.csv # discovery -> output_places.csv
python google_maps_scraper.py places.csv out.json --format json
python google_maps_scraper.py places.csv --reviews # places + reviews
```
无需 `pip install`。
## 命令行参考
```
python google_maps_scraper.py [input] [output] [options]
positional:
input Input CSV (locations.csv or places.csv). Omit for built-in sample.
output Output file. Default: output_places.csv (or .json)
options:
--format {csv,json} Output format (default: csv)
--reviews Also collect recent reviews for each place (separate dataset)
--review-days N How many days of reviews to pull (default: 30)
--limit N Max rows to write / review targets to fetch
--dry-run Validate input + API key without collecting (spends no credit)
--quiet Suppress progress output
--version Print version
-h, --help Show help
```
## 输入与输出
### 输入 A — 发现模式 (`locations.csv`)
按关键字查找地理位置附近的商家。
```
keyword,lat,long,zoom_level,country
coffee shop,40.7484,-73.9857,14,US
dentist,34.0522,-118.2437,13,US
```
| 列名 | 必填 | 类型 | 默认值 | 备注 |
|--------|----------|------|---------|-------|
| `keyword` | 是 | Text | — | 商业搜索词 |
| `lat` | 是 | Float | — | 纬度 (-90 到 90) |
| `long` | 是 | Float | — | 经度 (-180 到 180) |
| `zoom_level` | 否 | Int | 14 | 地图缩放级别,限制在 1–20。数值越大覆盖区域越小 |
| `country` | 否 | 2-letter | US | ISO 3166-1 alpha-2 代码 |
### 输入 B — URL 收集 (`places.csv`)
```
url
https://www.google.com/maps/place/Empire+State+Building
```
| 列名 | 必填 | 备注 |
|--------|----------|-------|
| `url` | 是 | 完整的 Google Maps 地点 URL。也支持无表头的纯 URL 文件。 |
### 输出字段
CSV 列名(或 JSON 键名)。CSV 中的缺失值将为空,JSON 中则为 `null`。参见 [`sample_output.csv`](./sample_output.csv) 查看示例。
| 字段 | 类型 | 备注 |
|-------|------|-------|
| `name` | text | 商业名称 |
| `category` | text | 主要类别 |
| `rating` | float | 星级评分 0–5(或为 null) |
| `reviews_count` | int | 评论数量(或为 null) |
| `phone` | text | 电话号码 |
| `website` | text | 网站 URL |
| `address` | text | 完整街道地址 |
| `latitude` / `longitude` | float | 坐标 |
| `place_id` | text | Google Maps 地点 ID(用于去重) |
| `url` | text | Google Maps 地点 URL |
使用 `--reviews` 参数时,会生成第二个文件 `
标签:API集成, BeEF, Python, 可观测性, 命令控制, 商业信息, 地理数据, 安全规则引擎, 数据采集, 无后门, 爬虫, 逆向工具