Я загружаю серию URL, которые являются файлами JSON, в список списка, который будет проанализирован позже.
baseurl <- "http://zoeken.kvk.nl/Address.ashx?site=handelsregister&partialfields=&q=010"
pages <- list()
for(i in 1:99999){
if(i < 10000){
message("ignoring page ", i)
}
if(i >= 10000){
message("Retrieving page ", i)
mydata <- RJSONIO::fromJSON(paste0(baseurl,i), flatten=TRUE)
pages[[i+1]] <- mydata$resultatenHR
# adding adjustment 1
options(timeout = 4000000)
# adding adjustment 2
if(i %% 100 == 0){Sys.sleep(2)}
if(i %% 1000 == 0){Sys.sleep(10)}
}
}
Однако в неурягические моменты я получаю либо код ошибки:
error in open.connection(con, "rb") : Recv failure: Connection was reset.
или
Error in file(con, "r") : cannot open the connection
Сначала я попробовал вышеуказанную настройку 1, а затем настройку 2, но проблема продолжает возникать.
Если я попытаюсь перезапустить цикл в точке ошибки, он снова будет работать до следующей нерегулярной ошибки.
Как я могу сделать так, чтобы R автоматически перезапускал цикл в точке ошибки?
NB. Я видел другие темы об ошибках в open.connection, но я не понимал данных ответов, или это не относится к моему типу кода, я думаю ...
NB2: Я также пытался использовать пакет jsonlite
вместо RJSONIO
, но он выдавал те же ошибки в нерегулярные моменты.
Спасибо за ваш вклад.