使用R中的API限制通过时间刮取数据
我正试图从Nordpool网站上获取消息。使用R中的API限制通过时间刮取数据,r,web-scraping,data-science,R,Web Scraping,Data Science,我正试图从Nordpool网站上获取消息。 链接到消息: API: 不幸的是,API只允许一次刮取1000条消息。但是,我想将2012年1月1日到今天为止SE中有关核能的所有信息包括在内(肯定超过1000条) 这是我必须抓取最后1000条消息的代码 url <- "https://ummapi.nordpoolgroup.com/messages?fuelTypes=14&IncludeOutdated=true&publicationStopDate=2019-
链接到消息:
API:
不幸的是,API只允许一次刮取1000条消息。但是,我想将2012年1月1日到今天为止SE中有关核能的所有信息包括在内(肯定超过1000条) 这是我必须抓取最后1000条消息的代码
url <- "https://ummapi.nordpoolgroup.com/messages?fuelTypes=14&IncludeOutdated=true&publicationStopDate=2019-10-11&areas=10Y1001A1001A46L&limit=1000"
data <- as.data.frame(fromJSON(url))
url查看API文档,似乎有跳过/跳转X记录的规定,因此基本上您可以通过将跳过值设置为等于2000来访问接下来的1000条记录
因此,您可能可以编写一个for循环来循环,直到一天结束,例如:
library(jsonlite)
url <- "https://ummapi.nordpoolgroup.com/messages?fuelTypes=14&IncludeOutdated=true&publicationStopDate=2019-10-11&areas=10Y1001A1001A46L&limit=1000&skip="
max <- 0
skiprec <- 0
df1 <- c()
repeat {
url <- paste0(url,skiprec)
req <- fromJSON(url)
max <- req$total
article <- req$items$reasonCode
df1 <- append(df1,article)
if(skiprec >= max) {
break
}
else {
skiprec <- skiprec + 1000
}
}
library(jsonlite)
网址
library(jsonlite)
url <- "https://ummapi.nordpoolgroup.com/messages?fuelTypes=14&IncludeOutdated=true&publicationStopDate=2019-10-11&areas=10Y1001A1001A46L&limit=1000&skip="
max <- 0
skiprec <- 0
df1 <- c()
repeat {
url <- paste0(url,skiprec)
req <- fromJSON(url)
max <- req$total
article <- req$items$reasonCode
df1 <- append(df1,article)
if(skiprec >= max) {
break
}
else {
skiprec <- skiprec + 1000
}
}