如何通过Yelp API利用商家ID关联对应Yelp商家页面?
用Yelp Fusion API通过商家ID获取Yelp页面链接
完全可以用Yelp的官方API解决这个问题,我给你梳理具体步骤:
1. 先获取Yelp Fusion API密钥
你需要先去Yelp开发者平台注册账号,创建一个新的应用,就能拿到专属的API Key(也就是Bearer Token)。这个Key是你调用所有Yelp API的凭证,一定要保管好。
2. 使用Business Details API端点
Yelp Fusion API里的Business Details接口专门用来通过商家ID获取完整的商家信息,其中就包含Yelp页面的URL。
请求示例(用curl)
把YOUR_API_KEY换成你拿到的密钥,BUSINESS_ID换成你CSV里的商家ID(比如TR0-w6VoZDAdvFQiq7P2Ug):
curl -H "Authorization: Bearer YOUR_API_KEY" https://api.yelp.com/v3/businesses/BUSINESS_ID
提取Yelp页面链接
返回的JSON结果里,url字段就是你要的商家Yelp页面地址,比如针对Capriotti's Sandwich Shop的ID,返回结果里会有类似这样的字段:
{ "id": "TR0-w6VoZDAdvFQiq7P2Ug", "name": "Capriotti's Sandwich Shop", "url": "https://www.yelp.com/biz/capriottis-sandwich-shop-...", // 其他商家信息 }
3. 批量处理CSV里的商家ID
如果你的CSV里有大量ID,写个简单的脚本批量处理效率更高,这里给个Python示例:
首先确保安装了requests和pandas(如果用pandas读CSV):
pip install requests pandas
然后脚本示例:
import requests import pandas as pd import time # 替换成你的API Key API_KEY = "YOUR_API_KEY" HEADERS = {"Authorization": f"Bearer {API_KEY}"} API_ENDPOINT = "https://api.yelp.com/v3/businesses/" # 读取CSV文件(假设CSV里有一列叫"business_id") df = pd.read_csv("your_reviews.csv") # 定义函数获取Yelp URL,加小延迟避免限流 def get_yelp_url(business_id): try: time.sleep(0.5) # 控制请求频率,避免触发限流 response = requests.get(f"{API_ENDPOINT}{business_id}", headers=HEADERS) response.raise_for_status() # 抛出HTTP错误 data = response.json() return data.get("url") except Exception as e: print(f"Error fetching {business_id}: {str(e)}") return None # 批量处理 df["yelp_url"] = df["business_id"].apply(get_yelp_url) # 保存结果到新的CSV df.to_csv("reviews_with_yelp_urls.csv", index=False)
注意事项
- API调用限制:免费版的Yelp Fusion API每天最多允许5000次请求,如果你的商家ID数量超过这个数,要分多天处理,或者调整脚本里的延迟时间控制请求频率。
- 无效ID处理:如果某个商家ID无效,API会返回404错误,脚本里的异常处理会捕获并返回
None,你可以后续再手动排查这些无效ID。
内容的提问来源于stack exchange,提问作者FreLa
相关产品推荐
相关产品推荐

