如何通过Yelp API获取超过3条评论?纽约诊所评论获取问题
解决Yelp API仅返回前3条诊所评论的问题
看起来你碰到了Yelp API的一个常见限制——它的Reviews端点(/v3/businesses/{id}/reviews)默认最多只返回3条评论,这是官方API的设计规则。不过先看看你的代码里几个需要修正的地方,再聊聊怎么最大化获取评论的可能性。
首先,你的代码里有个明显的配置错误:
API_HOST = 'https://api.yelp.com/reviews'
这不对,API_HOST应该只是域名api.yelp.com,完整的请求URL应该是https://api.yelp.com/v3/businesses/{business_id}/reviews。你把路径和主机地址混在一起了,这可能导致请求本身就存在问题。
接下来,正确的调用流程应该是这样的:
- 先通过
/v3/businesses/search端点找到目标诊所的business_id(你代码里的这个路径配置是没问题的) - 用拿到的
business_id调用/v3/businesses/{business_id}/reviews端点获取评论
不过要重点说明:Yelp的Reviews API确实没有提供获取更多评论的参数,它最多只返回3条最新的评论。如果你的需求是获取更多评论,目前Yelp官方API没有直接支持这个功能——你可能需要考虑这些替代方案:
- 若只是个人参考,可直接查看该诊所的Yelp网页版评论,但注意不要违反Yelp的robots协议进行爬取(这属于违规行为)
- 如果是商业用途,可以联系Yelp的企业团队,询问是否有更高权限的API访问渠道
这里给你修正后的代码示例,确保能正确调用Reviews端点:
import http.client import json api_key = 'MY API KEY' API_HOST = 'api.yelp.com' BUSINESS_REVIEWS_PATH = '/v3/businesses/{}/reviews' # 后续替换为实际诊所的business_id headers = { 'Authorization': f'Bearer {api_key}', } def get_business_reviews(business_id): conn = http.client.HTTPSConnection(API_HOST) path = BUSINESS_REVIEWS_PATH.format(business_id) conn.request('GET', path, headers=headers) response = conn.getresponse() data = json.loads(response.read().decode()) conn.close() return data # 假设你已经通过search接口拿到了诊所的business_id clinic_business_id = 'your-clinic-business-id-here' reviews = get_business_reviews(clinic_business_id) print(json.dumps(reviews, indent=2))
运行这段代码后,你会得到包含3条评论的响应,这是当前Yelp API允许返回的最大评论数量。如果需要更多评论资源,只能通过Yelp官方的商业合作渠道申请更高权限。
内容的提问来源于stack exchange,提问作者user9519372
相关产品推荐
相关产品推荐

