所以我有一个"Player"对象列表,每个对象都有一个 ID,被调用players,我正在尝试使用 JSONlite 访问包含与相关 ID 相关的信息的 Web JSON。
HTML 词干是:' https://fantasy.premierleague.com/drf/element-summary/ '
我需要访问每个玩家各自的页面。
我正在尝试这样做:
playerDataURLStem = 'https://fantasy.premierleague.com/drf/element-summary/'
for (player in players) {
player_data_url <- paste(playerDataURLStem,player@id,sep = "")
player_data <- fromJSON(player_data_url)
# DO SOME STUFF #
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我收到错误Error in open.connection(con, "rb") : Timeout was reached: Resolving timed out after 10000 milliseconds。每次运行代码时都会在我的玩家列表中的不同位置产生此错误,当我检查导致错误的网页时,我看不到任何错误。这让我相信有时页面只需要超过 10000 毫秒的时间来回复,但使用
options(timeout = x)
Run Code Online (Sandbox Code Playgroud)
对于某些人来说x,似乎并没有让它等待更长时间的响应。
对于最小的工作示例,请尝试:
playerDataURLStem = 'https://fantasy.premierleague.com/drf/element-summary/'
ids <- c(1:540)
for (id in ids) {
player_data_url <- paste(playerDataURLStem, id, sep = "")
player_data <- fromJSON(player_data_url)
print(player_data$history$id[1])
}
Run Code Online (Sandbox Code Playgroud)