【发布时间】:2015-07-07 00:11:45
【问题描述】:
我正在尝试创建一个电影抓取脚本,但在运行下面的最后一行代码后,我遇到了一个
Error in rbind(deparse.level, ...) :
numbers of columns of arguments do not match
我不知道为什么。
rottenrate <- function(movie){
require(RJSONIO)
link <- paste("http://www.omdbapi.com/?t=", movie, "&y=&plot=short&r=json&tomatoes=true", sep = "")
jsonData <- fromJSON(link)
return(jsonData)
}
vrottenrate <- Vectorize(rottenrate, "movie", SIMPLIFY = F)
val <- "http://www.fandango.com/valkilmer/filmography/p38142"
val_movies <- readHTMLTable(val)
val_movies <- as.data.frame(val_movies)
val_movie_titles <- subset(val_movies, select = c(NULL.Title))
val_movie_titles <- as.character(val_movie_titles$NULL.Title)
val_completed <- do.call(rbind, lapply(vrottenrate(val_movie_titles), function(x) as.data.frame(t(x), stringsAsFactors = FALSE)))
【问题讨论】:
-
(a) 有一个omdbapi R package 和 (b) 你违反了 Fandango 的 Terms of Use 并且任何帮助你提供涉及 Fandango 的代码示例的人也违反了并受到罚款和判决.
-
@hrbrmstr 指出这一点很重要。但我的感觉是,SO 应该考虑如何处理此类案件的政策。我不是律师,但我最近一直在想这个问题:如果一个人在回答 SO 上发布的问题时可能会遇到法律问题,人们可能想知道 SO 在这种情况下也会在多大程度上负责,因为它在网站上发布了这个问题,因此可以说 SO 默许了提交有效答复。为什么还要发布这个问题?
-
@hrbrmstr:您是否为全世界的任何读者提供合格的法律意见?据我记得我还没有签署那个 ToS,所以我不确定它是否适用于我。 (我在英国,如果这会影响您的建议)。
-
无论您喜欢与否,都适用 ToS。是否支持非法活动并因此承担任何后果取决于您。
-
这不是合法的“建议”,它是在警告人们,如果不阅读和遵守大多数人不遵守的网站法律服务条款,他们可能会陷入麻烦似乎认为意味着什么。他们是这样。我有 3 个朋友收到停止和终止信函。它们非常真实。
标签: r web-scraping movies