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

时间:2018-03-19 22:04:53

标签: python api yelp

我想通过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))

有没有办法获得所有评论?非常感谢。

3 个答案:

答案 0 :(得分:1)

正如您在Yelp API documentation上看到的那样,目前无法使用您正在使用的商家评价端点(/businesses/{id}/reviews)检索单个商家的三个以上评论。

商业评论端点唯一可接受的参数是locale

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

  

此端点最多可返回由Yelp's default sort order订购的特定商家的三个评论摘录。

所以,在这个时候,似乎Yelp只通过他们的API公开每个企业最多三次评论。请考虑向GitHub repository for the Yelp API提交功能请求。

答案 1 :(得分:0)

我讨厌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-您需要获得评论的yelp业务页面的完整URL(必填) api_key-使用上面的链接中的一个,我将其设置为过期(请记住) 评分-您可以指定&rating = 5仅获得5星评价,或指定&rating = 2仅获得2星评价,等等;这是可选的,将其保留为空白将返回所有评论

继续,拿起诊所的东西:)

答案 2 :(得分:0)

Yelp 的 Fusion API 允许用户针对一个关键字搜索多达 1000 个商家信息,但在评论方面 Yelp 并不那么慷慨。

剩下的唯一选择是让您抓取 Yelp。虽然这会违反他们的 robots.txt 和他们的 TOS,因为他们声称拥有他们网站上所有用户生成评论的版权。

幸运的是,从 Yelp 上抓取评论并不违法。由于它们是可公开访问的,并且发布它们的用户并不打算将它们保密。

以下技术可用于从 Yelp 中抓取评论:

还有更多,但以上内容对于 Yelp 来说应该足够了。另一方面,如果您没有时间,并且只想开始。我构建了一个名为 Unwrangle 的 Reviews API,可用于从 Yelp 中抓取评论。

您可以在注册时免费获取 10,000 条评论。 API 需要每个 Yelp 列表 1 个发布请求,它提取所有评论(我已经测试了多达 12k 条 Yelp 评论)并将它们发布到您的 webhook。也可以在作业完成后查询它们。 Here's 文档链接。