SuperAPI AI 工具集

yelp-search

通用与其它

查看项目

更新于 10-16 09:21

技能介绍

Yelp Search 集成用于在 Yelp 上搜索本地商家,帮助查找服务、获取联系方式、查看评分以及检索营业时间。

用途

该工具主要用于查找本地服务类商家(如清洁、宠物美容、餐厅等),并获取其联系方式、评分、评论数量和营业时间等信息。

主要能力

  • 商家搜索:按关键词和位置查找商家,支持按评分、距离、评论数量或最佳匹配排序,可按价格等级(1-4)筛选,可限制返回结果数量。
  • 商家详情:获取指定商家的营业时间和详细信息。
  • 电话反查:通过电话号码反向查找商家。
  • 评论文本提取:可选功能,通过浏览器自动化方式提取评论文本(速度较慢,每次请求约 30-60 秒)。
  • 直接抓取评论:另一种评论获取方式,使用 Browserbase 凭据和代理绕过 Yelp 的 CAPTCHA,比前者更可靠但需要 Browserbase 账户。

使用方式

配置

  1. Yelp API Key(必需):前往 https://www.yelp.com/developers 创建账户或登录,点击 "Create App" 并填写表单,复制 API Key,添加到 .env 文件:
YELP_API_KEY=your_api_key_here
  1. Browser-Use 用于评论提取(可选):仅在需要提取评论文本时使用。安装依赖:
uv add browser-use playwright langchain-openai
uv run playwright install chromium

添加到 .env:

OPENAI_API_KEY=your_openai_key_here

注意:评论提取使用 browser-use 搜索 DuckDuckGo(因为 Yelp 阻止直接抓取)。大多数情况下,API 提供的评分和评论数量已足够。

脚本

所有脚本位于 tools/yelp-search/scripts/,使用 uv run python 运行。

search.py - 查找商家(主要工具)

uv run python tools/yelp-search/scripts/search.py "search term" --location "City, State"

选项:

标志 说明 示例
--location, -l 城市、地址或邮编 "San Francisco" 或 "94123"
--latitude/--longitude GPS 坐标 --latitude 37.78 --longitude -122.41
--limit, -n 结果数量(默认:5) -n 10
--sort-by 排序方式 rating, distance, review_count, best_match
--price 价格筛选(1-4) --price 1,2 表示仅 $ 和 $$
--json 输出原始 JSON

示例:

# 查找评分最高的宠物美容店
uv run python tools/yelp-search/scripts/search.py "dog groomer" -l "San Francisco" --sort-by rating

# 查找附近的便宜餐厅
uv run python tools/yelp-search/scripts/search.py "restaurants" -l "94123" --price 1,2 --sort-by distance

# 在特定地址附近搜索
uv run python tools/yelp-search/scripts/search.py "laundry pickup" -l "123 Main St, San Francisco"

details.py - 获取营业时间和信息

uv run python tools/yelp-search/scripts/details.py "business-alias"

商家别名在 Yelp URL 中(例如 the-laundry-corner-san-francisco)。

phone_search.py - 电话反查

uv run python tools/yelp-search/scripts/phone_search.py "+14155551234"

get_reviews.py - 提取评论文本(慢)

uv run python tools/yelp-search/scripts/get_reviews.py "Business Name" -l "City" -n 3

注意:使用 browser-use,速度较慢(约 30-60 秒)。Yelp 阻止直接抓取,因此通过搜索 DuckDuckGo 获取缓存评论作为变通方案。

scrape_reviews.py - 直接抓取 Yelp(替代方案)

uv run python tools/yelp-search/scripts/scrape_reviews.py "https://www.yelp.com/biz/business-alias" -n 5

需要 Browserbase 凭据:

BROWSERBASE_API_KEY=your_key_here
BROWSERBASE_PROJECT_ID=your_project_id

注意:使用 Browserbase 和代理绕过 Yelp 的 CAPTCHA。比 get_reviews.py 更可靠,但需要 Browserbase 账户。

适用场景

  • 查找本地服务(清洁、宠物美容、餐饮等)。
  • 获取商家联系方式用于电话或短信联系。
  • 根据评分和评论数量评估商家质量。
  • 查找特定需求的商家(如周末营业、提供取送服务等)。

最佳实践

无评论文本时评估质量

API 提供的评分和评论数量通常已足够:

评分 评论数量 解读
4.5+ 50+ 优秀,数据可靠
4.5+ <20 有潜力但数据有限
4.0-4.4 100+ 良好,成熟商家
<4.0 任意 需谨慎

查找有特定需求的服务

  1. 使用 --sort-by rating 获取最佳选项。
  2. 获取候选商家的详情以查看营业时间。
  3. 筛选出在需要的时间营业的商家。
  4. 直接联系确认具体服务(取送、配送等),因为 Yelp 不一定包含这些信息。

搜索技巧

  • 使用具体关键词:"laundry pickup" 而非仅 "laundry"。
  • 在地址附近搜索以获得准确距离:-l "123 Main St, City"。
  • 先按评分排序,再查看结果中的距离。
  • 检查评论数量——高评分但评论很少的可能不可靠。

响应数据

每个商家结果包含:

  • name - 商家名称
  • phone - 电话号码(用于短信/电话)
  • rating - Yelp 评分(1-5 星)
  • review_count - 评论数量
  • price - 价格等级($ 到 $$$$)
  • location - 完整地址
  • hours - 按天营业时间(在详情中)
  • distance - 距搜索位置的距离
  • categories - 商家类别
  • is_open_now - 当前营业/关闭状态

限制

功能 状态 说明
商家搜索 ✅ 可用 快速、可靠
商家详情 ✅ 可用 包含营业时间
电话查询 ✅ 可用 反向搜索
评论文本(API) ❌ 仅付费 需要企业级套餐
评论文本(抓取) ⚠️ 慢 browser-use 通过 DuckDuckGo 的变通方案
  • 免费 API 额度:每天 500 次调用。
  • 每次请求结果限制为 50 条。
  • 部分商家信息(取送/配送)不在 API 中——需直接联系。