我在 R 中使用 Yelp API 来取消一些业务。根据我在文档中阅读的内容,每个 API 调用最多可以提取 20 个业务,但是如果使用 offset= 参数,您基本上可以提取更多记录。
我要做的是创建一个简单的循环来创建多个 API 调用,其中 offset= 参数的值递增。
例如——第一个 API 调用如下所示:
yelpURL <- paste0("http://api.yelp.com/v2/search/?limit=20&offset=20&sort=0&term=food&location=Chicago")
下一个调用的偏移量 = 20,然后是 40、60、80,依此类推。我不知道该怎么写。我想减少我相信的最大企业数量 1,000,并将它们添加到单个数据框中。下面是我的完整代码:
# yelp credentials
consumerKey = "xxxxxxx"
consumerSecret = "xxxxxxx"
token = "xxxxxxx"
tokenSecret = "xxxxxxx"
require(httr)
myApp <- oauth_app("YELP", key=consumerKey, secret=consumerSecret)
mySignature <- sign_oauth1.0(myApp, token=token, token_secret=tokenSecret)
yelpURL <- paste0("http://api.yelp.com/v2/search/?limit=20&offset=20&sort=0&term=food&location=Chicago")
locationData <- GET(yelpURL, mySignature)
require(jsonlite)
locationDataContent = content(locationData)
locationList=jsonlite::fromJSON(toJSON(locationDataContent))
results <- data.frame(locationList)