核心用法
spots 是一款命令行工具,采用网格化穷举扫描策略突破Google Places的推荐过滤机制。其核心流程为:将目标区域划分为密集网格单元 → 对每个单元独立发起API查询 → 聚合多语言关键词结果(如breakfast/brunch/ontbijt)→ 基于Haversine公式精确过滤距离 → 按地点ID去重输出。
显著优点
1. 发现盲区:可捕获Google算法因「不够热门」或「未付费推广」而压制的隐藏商户
2. 多语言覆盖:内置跨语言关键词扩展,提升非英语地区的召回率
3. 精确地理过滤:使用Haversine公式计算真实距离,替代Google模糊的「附近」判定
4. 灵活输出:支持JSON/CSV/交互式HTML地图三种格式,便于数据分析和可视化
5. 零依赖安装:提供预编译二进制文件,Go开发者亦可源码安装
潜在缺点与局限性
- API成本高昂:网格扫描策略导致请求量呈指数级增长,大规模区域搜索将快速消耗配额
- 覆盖盲区风险:过小的网格单元可能遗漏跨边界的地点,过大则增加冗余
- 无实时校验:依赖Google Places数据本身,不验证商户实际营业状态
- 功能单一:专注地点枚举,缺乏路线规划、导航等配套功能
适合人群
- 本地生活探索者(寻找小众餐厅、咖啡馆)
- 市场研究员(竞品网点普查、商圈饱和度分析)
- 旅行规划师(穷举目的地全部可选商户)
- 数据 journalists(调查性报道中的商户分布取证)
常规风险
- API密钥泄露:需配置
GOOGLE_PLACES_API_KEY,硬编码或日志泄露可能导致密钥被盗刷 - 账单失控:网格密度与搜索半径组合不当会产生意外高额账单,建议配合预算告警使用
- 合规灰色地带:批量爬取行为可能触达Google Places服务条款边界,存在API限流或封禁风险
- 数据时效性:输出结果不含抓取时间戳,过期数据可能导致用户扑空