繁体   English   中英

如何从 Yelp API 请求中获得超过 3 条评论

[英]How to get more than 3 reviews from Yelp API request

我想通过 Yelp API 检索纽约一家诊所的评论。 但是,API 似乎只返回前三个评论。

我的代码

# Finding reviews for a particular clinic
import http.client
import json
import urllib.parse

api_key= 'MY API KEY'

API_HOST = 'https://api.yelp.com/reviews'
SEARCH_PATH = '/v3/businesses/search'
BUSINESS_PATH = '/v3/businesses/'  
# Business ID will come after slash.


headers = {
'Authorization': 'Bearer %s' % api_key,
}

#need the following parameters (type dict) 
params = {'name':'MinuteClinic', 'address1':'241 West 57th St', 'city':'New York', 'state':'NY', 'country':'US'}


param_string = urllib.parse.urlencode(params)
conn = http.client.HTTPSConnection("api.yelp.com")
conn.request("GET", "/v3/businesses/matches/best?"+param_string, headers=headers)

res = conn.getresponse()
data = res.read()
data = json.loads(data.decode("utf-8"))
print(data)


b_id = data['businesses'][0]['id']

r_url = "/v3/businesses/" + b_id + "/reviews"    #review request URL creation based on business ID
conn.request("GET",r_url,headers=headers)
rev_res = conn.getresponse()     #response and read functions needed else error(?)
rev_data = rev_res.read()
yelp_reviews = json.loads(rev_data.decode("utf-8"))


print(yelp_reviews)
print(len(yelp_reviews))

有没有办法获得所有评论? 太感谢了。

正如您可能在Yelp API 文档中看到的那样,目前无法使用您正在使用的业务评论端点 ( /businesses/{id}/reviews ) 为单个企业检索三个以上的评论。

Business Review 端点唯一接受的参数是locale

此外,该端点的文档的第一句是

此端点最多返回三个按Yelp 的默认排序顺序排序的给定业务的评论摘录。

因此,目前,Yelp 似乎只通过他们的 API 公开每个企业最多三个评论。 考虑向Yelp API 的 GitHub 存储库提交功能请求。

我讨厌 Yelp,我也讨厌 Google 遵循套件并限制返回的评论数量。 评论是公开的,他们不愿意让程序化访问来获得所有评论,这是迟钝的; 他们想知道为什么开发人员必须创建解决方法来绕过这些限制。

任何人; 我为我的一个 API 创建了一个临时 API 密钥; 这个将从任何 Yelp 个人资料中获取您需要的所有评论;

示例调用:

http://api.reviewsmaker.com/yelp/?url=https://www.yelp.com/biz/chicha-brooklyn&api_key=4b3d3d92-27f4-4eaa-bb8b-281cb8aa3860

参数:

url - 获取(必需)api_key 评论所需的 yelp 业务页面的完整 URL - 使用上面链接中的那个,我将其设置为过期(记住这一点)评级 - 您可以指定 &rating=5 仅拉 5 星评论,或 &rating=2 只拉 2 星评论等; 这是可选的,将其留空将返回所有评论

去拿你诊所的东西:)

Yelp 的Fusion API允许用户为一个关键字搜索多达 1000 个企业列表,但在评论方面,Yelp 并不那么慷慨。

然而,访问他们的 API 几乎是不可能的。 我认识很多人申请都没有成功。

唯一剩下的选择是从 Yelp 上抓取评论。 虽然 Yelp 可能声称他们不会“允许”对其数据进行任何抓取,但他们无法强制执行,因为抓取公共数据仍然是合法的。

以下技术可用于为 Yelp 评论编写爬虫:

  • 刮擦(Python)
  • 请求和 lxml (Python)
  • Cheerio (节点)

如果你没有时间也不介意花几块钱。 我还构建了一项服务,可以为您抓取 Yelp 评论并将其作为 API 响应返回给 Yelp 上的任何列表。

它被称为Yelp 评论 API ,可用于免费抓取多达 10,000 条评论。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM