使用Zillow Reviews API无法获取全部评论的问题排查
获取Zillow Reviews API全部80条评论的解决方案
你的问题核心是OData API默认开启分页,每次仅返回10条结果,再加上原请求URL存在语法错误,导致过滤条件失效,进一步限制了返回数据量。以下是具体解决步骤:
1. 修正URL语法错误
原请求中RevieweeKey+eq+%A_REVIEWEE_KEY %27的写法有误,正确格式需将被评论者密钥用单引号包裹,转义后URL中应为RevieweeKey+eq+%27A_REVIEWEE_KEY%27。错误的过滤条件会导致API仅匹配到少量数据。
修正后的基础请求URL:
https://api.bridgedataoutput.com/api/v2/OData/reviews/Reviews?$filter=ReviewDate+ge+2010-01-01+and+RevieweeKey+eq+%27A_REVIEWEE_KEY%27&$select=ReviewerScreenName,ReviewDate,ReviewKey&$orderby=ReviewDate&access_token=MY_ACCESS_TOKEN
2. 用分页参数遍历全部结果
Zillow该API默认每页返回10条数据,要获取全部80条,需通过$top(指定每页条数)和$skip(跳过已获取的条数)参数分页请求:
- 第1页(获取前10条):
https://api.bridgedataoutput.com/api/v2/OData/reviews/Reviews?$filter=ReviewDate+ge+2010-01-01+and+RevieweeKey+eq+%27A_REVIEWEE_KEY%27&$select=ReviewerScreenName,ReviewDate,ReviewKey&$orderby=ReviewDate&$top=10&$skip=0&access_token=MY_ACCESS_TOKEN - 第2页(跳过前10条,获取第11-20条):
https://api.bridgedataoutput.com/api/v2/OData/reviews/Reviews?$filter=ReviewDate+ge+2010-01-01+and+RevieweeKey+eq+%27A_REVIEWEE_KEY%27&$select=ReviewerScreenName,ReviewDate,ReviewKey&$orderby=ReviewDate&$top=10&$skip=10&access_token=MY_ACCESS_TOKEN - 以此类推,每次将
$skip的值增加10,直到$skip达到70(80÷10 -1 =7),即可获取全部80条评论。
3. 验证数据范围(可选)
若分页后仍无法获取80条,可先去掉ReviewDate过滤条件,确认是否是日期范围限制了结果:
https://api.bridgedataoutput.com/api/v2/OData/reviews/Reviews?$filter=RevieweeKey+eq+%27A_REVIEWEE_KEY%27&$select=ReviewerScreenName,ReviewDate,ReviewKey&$orderby=ReviewDate&$top=10&$skip=0&access_token=MY_ACCESS_TOKEN
如果去掉日期过滤后能拿到更多数据,说明之前的日期范围设置排除了大部分评论,需调整ReviewDate条件。
内容的提问来源于stack exchange,提问作者Andy Wallace
相关产品推荐
相关产品推荐

