获取 Yelp 商家评论
查看 Yelp 商家、评论与餐厅数据 的全部接口 →使用 Yelp 商家别名、22 位商家 ID 或 Yelp 商家页面网址,分页获取一家商家的评论。可组合使用关键词、星级和评论原文语言筛选条件,从六种文档列出的排序方式中选择一种,也可通过两位语言代码请求额外译文。默认获取第 1 页,每页 20 条;文档规定页码范围为 1–1000,每页条数范围为 1–49。 已保存的成功响应包含 count、per_page、current_page、total_pages、next、previous、business 和 reviews。business 对象包含 id、alias、name、link、rating、review_count、rating_distribution 和 languages,其中 languages 的每一项包含 language 和 count。已观察到的评论记录包含 id、link、rating、text、language、translated_text、created_at、date、author、reactions 和 photos。author 包括作者身份、个人主页链接、所在地、头像链接、贡献数量和精英用户状态相关字段。reactions 包含 helpful、thanks、love_this 和 oh_no。照片条目包含照片标识、图片链接、尺寸、上传时间、like_count 和 uploaded_by;caption 和 tags 可能为 null。评论还包含 is_updated、is_first_review、check_in_count、made_reservation、paid_through_yelp 和 was_appreciated_by_business。已观察记录中的 videos、owner_reply、previous_reviews、review_of_the_day 和 expert_badge 等字段均为 null,尚不能确定这些字段有值时的结构。 一次使用 newest 排序的已保存请求返回了三条带有正文、评分、作者和日期的评论。另一次包含合成测试关键词的已保存请求返回 reviews=[]、count=null,翻页导航值也为 null。这条记录不能确定响应为空的原因;count 为 null 表示总数未知,不能认定为零。已观察记录中的 translated_text 均为 null。其他排序方式、星级与语言筛选以及翻译行为仅有文档说明,尚未通过独立请求验证。不要假定能够获取完整历史评论,也不要将 newest 排序视为有保证的增量更新流。
API 功能
在线 API 演示
未找到可用的 API Key,请前往控制台创建后刷新本页。 控制台 →
/api/project/yelp/business-reviews API 响应 (JSON)
{} curl -X GET 'https://api.opendata-api.com/api/project/yelp/business-reviews?key=<API_KEY>&business=gary-danko-san-francisco&page=1&page_size=20&sort_by=relevance'
查询结果
使用场景
- 在具备相应权限的前提下导出门店评论,保存分页检查点并按返回的评论 id 去重,明确记录缺口,不宣称形成完整历史档案。
- 结合服务相关关键词和指定星级建立餐厅服务投诉待办队列,同时保留评论原文语言及单独返回的译文。
- 在诊断日志中记录商家身份、请求筛选条件、页码、实际返回条数和可空的 count,区分空响应与已确认的总数为零。
- 比较指定门店集合中的评论日期,保存抓取时间,不假定 newest 排序能够提供有保证的增量更新流。
常见问题
商家标识可以填写哪些内容?
可以填写 Yelp 商家别名,例如 gary-danko-san-francisco,也可以填写 22 位商家 ID 或 Yelp 商家页面网址。每次请求针对一家商家,不是按地区搜索所有商家。
评论如何分页,每页条数有什么限制?
page 默认值为 1,文档规定范围为 1–1000;page_size 默认值为 20,范围为 1–49。已观察到的响应包含 per_page、current_page、total_pages、next 和 previous,但这些范围并不保证所有历史评论都可访问。
关键词和星级筛选可以一起使用吗?
文档提供 query 用于评论关键词筛选,rating 用于逗号分隔的星级列表,例如 1,2,language 用于指定评论原文语言。这些可选条件可以同时提交。一次包含合成测试关键词的已保存请求返回了空响应,但不能确定其原因;组合筛选及星级筛选尚未独立测试。
language 与 translate_to 有什么区别?
language 按评论原文的两位语言代码筛选;translate_to 则通过两位目标语言代码请求额外译文。应分别处理 text、language 与 translated_text。已保存的未请求翻译的记录中,translated_text 为 null,实际译文输出尚未验证。
reviews=[] 且 count=null 是否表示商家没有评论?
不是。一次包含合成测试关键词的已保存请求返回了空 reviews 数组和未知总数,而同一家商家在另一次请求中返回了真实评论。这些记录不能确定响应为空的原因。应将 null 保留为未知,并检查筛选条件和页码,不要将其解释为该商家评论总数为零。
支持哪些评论排序方式?
文档列出的值为 relevance、newest、oldest、highest_rated、lowest_rated 和 elites,默认使用 relevance。一次已保存的 newest 请求返回了三条带日期的评论。其他排序方式尚未独立验证,排序本身也不构成有保证的变更订阅流。
商家回复、视频和译文一定有值吗?
不一定。已观察到的评论中,translated_text、videos、owner_reply、previous_reviews 及部分可选徽章字段均为 null。请按可选内容处理;已有响应不能确定这些字段有值时的格式,也不能保证其他商家会提供这些内容。