我的剧本几乎没有从作者那里得到什么内容

2024-06-16 09:05:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经编写了一个脚本,使用他们的api从yelp获取所有评论、评论员姓名和评分。我下面的脚本可以从该api生成三个评论、评论人姓名和评级。然而,在我使用chrome开发工具收集api的登录页中,我可以看到44篇这样的评论。我怎样才能得到所有的

link to the landing page

这是我的尝试:

import requests

res = requests.get("https://eatstreet.com/api/v2/restaurants/40225?yelp_site=")
name = res.json()['name']
for texualreviews in res.json()['yelpReviews']:
    reviewtext = texualreviews['message']
    revname = texualreviews['reviewerName']
    rating = texualreviews['rating']
    print(f'{name}\n{reviewtext}\n{revname}\n{rating}\n')

正如我之前所说:我上面的脚本可以产生三个评论,而其中有44个。我怎么能把它们都抓起来

这些评论的截图(在登录页中找到它们的位置)。 enter image description here


Tags: name脚本apijson评论res评分requests
1条回答
网友
1楼 · 发布于 2024-06-16 09:05:42

Yelp自己的API不允许查询超过3条评论;不管出于什么原因,他们限制了你可以得到的评论数量(就像Google限制他们的API只显示5条评论一样)。如果你正在刮,直接刮Yelp页面;你所点击的站点正在使用API显示3条评论(最多),并直接回调到Yelp站点(显示所有评论的地方);遗憾的是,没有一种本地方法可以从Yelp中提取所有评论

你在Chrome(https://eatstreet.com/api/v2/restaurants/40225?yelp_site=)中从Google的Developer Tools inspector查询的API URL正在调用Fusion的(Yelp的API)来提取JSON中的yelpReviews数组;默认情况下限制为3条,即使你注册了自己的Fusion应用程序,你也不能获得超过3条评论,这是Yelp设定的硬上限

您可以在那里搜索一些临时脚本,但是我看到许多人尝试创建库来提取API有限的审阅数据。一个很好的例子是我在这里写的:https://github.com/ilanpatao/Yelp-Reviews-API

最好的, 伊兰

相关问题 更多 >