2016-11-04 3 views
-1

Ich möchte die Ranking-Punktzahl von einigen Filmen erwerben, und nicht wissen, wie man das Problem mit "subscript out of bounds" zu beheben. Hier ist mein Code.

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") 

Und der Fehler wie:

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

Haben Sie die API-Dokumentation richtig gelesen? – vagabond

Antwort

0

1) Sie sind die falsche Endpunkt verwendet wird.

2) Die URL-Zeichenfolge, die Sie erstellen, ist nicht korrekt. Schauen Sie sich deren Ausgabe durch copy-Einfügen dieser in dem Browser: https://api.douban.com/v2/movie/search?q= {Leben% 20 wird% 20Beautiful}

Der richtige Endpunkt ist: GET/v2/Film/Thema/1764796

Wenn Sie das gleiche verwenden mögen Endpunkt wie Sie haben und seinen Inhalt erhalten, tun Sie dies:

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\" 的结果" 
Verwandte Themen