街道商户清单生成器
简介
根据城市名称和街道名称,自动采集该区域内所有商户信息,生成按门牌号排序的 Excel 清单。
功能特性
- 双模式查询:街道模式(单街道)和区域模式(中心点+半径)
- 三源数据:高德地图、腾讯地图、百度地图
- 智能去重:100%相同合并,80-99%相似标注"可能重复"
- 门牌号排序:按门牌号升序排列,无门牌号按经纬度排序
- 防幻觉机制:API数据优先,明确标注数据来源
安装依赖
pip install requests openpyxl
使用方法
街道模式
cd scripts
python main.py --city 上海 --district "" --street 南京东路 --radius 2000 --output ./output/南京东路商户清单.xlsx
区域模式(中心点 + 半径,多街道分组)
python main.py --city 上海 --street 人民广场 --radius 3000 --output ./output/人民广场周边商户清单.xlsx
命令行参数
| 参数 | 说明 | 默认 |
|------|------|------|
| --city | 城市名称 | 沧州 |
| --district | 区县名称(可留空) | 河间市 |
| --street | 街道名称 / 区域模式中心点 | 曙光东路 |
| --radius | 搜索半径(米) | 2000 |
| --output | 输出 Excel 路径 | output.xlsx |
| --no-baidu | 跳过百度源 | 否 |
| --no-tencent | 跳过腾讯源 | 否 |
注:v1.2 起三源并发采集,单条街道通常 10 秒–2 分钟;腾讯 IP 白名单已取消限制。
文件结构
street-merchant-list/
├── SKILL.md # Skill 定义
├── README.md # 使用说明
├── scripts/
│ ├── main.py # 主流程入口
│ ├── api_clients/ # API 客户端
│ │ ├── amap_client.py
│ │ ├── tencent_client.py
│ │ └── baidu_client.py
│ ├── data_processor.py # 数据处理
│ ├── web_searcher.py # 网络搜索补充
│ └── excel_generator.py # Excel 生成
API Keys
在使用前需要配置 API Keys:
export AMAP_KEY='你的高德Key'
export TENCENT_KEY='你的腾讯Key'
export BAIDU_AK='你的百度AK'
或在代码中直接设置:
import os
os.environ['AMAP_KEY'] = '你的Key'
Excel 输出字段
| 列名 | 说明 | |------|------| | 序号 | 1, 2, 3... | | 门牌号 | 提取的门牌号 | | 商户名称 | 正式名称 | | 业态大类 | 购物/餐饮/住宿等 | | 业态细分 | 更精确分类 | | 完整地址 | 原始地址 | | 经度 | GPS坐标 | | 纬度 | GPS坐标 | | 数据来源 | 高德/腾讯/百度 | | 备注 | 可能重复/无门牌号 |
注意事项
- 腾讯地图 IP 白名单:已于 2026-08 取消限制,直连可正常返回
- 免费配额:搜索类个人配额有限(高德约 100/腾讯约 200/百度约 100 次/天),单街道三源全开约消耗 100-160 次/源,请按天规划
- 数据覆盖:约 60-80% 商户有明确门牌号
- 网络搜索:AI 补充的数据会标注"需人工复核"
更新日志
v1.0.0 (2026-03-27)
- 初始版本
- 支持高德/腾讯/百度三源数据采集
- 支持街道模式和区域模式
微信扫一扫