2016-11-04 102 views
-1

我想获得某些电影的排名分数,而不知道如何解决“下标越界”的问题。这是我的代码。

movieScoreapi <- function(x) { 
api <- "https://api.douban.com/v2/movie/search?q={" 
url <- paste(api, x, "}", sep = "")  
res <- getURL(url)  
reslist <- fromJSON(res)  
name <- reslist$subjects[[1]]$title  
score <- reslist$subjects[[1]]$rating$average  
return(list(name = name, score = score)) 
} 
movieScoreapi("Life is beautiful") 

和错误是这样的:

Error in reslist$subjects[[1]] : subscript out of bounds 
+0

你读过api文档正确吗? – vagabond

回答

0

1)您使用了错误的端点。

2)您构建的URL字符串不正确。看看它是通过复制粘贴输出到这个浏览器:https://api.douban.com/v2/movie/search?q= {人生%图20是%20Beautiful}

正确的端点是: GET/V2 /电影/主题/ 1764796

如果你想使用相同的终端,因为你有,并得到它的内容,这样做:

install.packages("httr") 
require(httr) 

movieScoreapi <- function(x) { 
api <- "https://api.douban.com/v2/movie/search?q=" 
    url <- paste(api, x, sep = "")  
    res <- GET(url)  
    reslist <- content(res)  
    df_contents <- rbind(unlist(content(res))) 
    return(df_contents) 
} 
movieScoreapi("Dracula") 
    count start total title        
[1,] "20" "0" "0" "搜索 \"LifeIsBeautiful\" 的结果"