研究了一阵子,最近解决了,用for循环,如果有更好的方式,欢迎高手指正:
for (k in 1:length(reginolist)){
reg = reginolist[k]
waterurl <- paste('http://prtr.epa.gov.tw/FacilityInfo/_DetailWatReport?registrationno=', reg, sep='')
regino_char <- as.character(reg) #第一栏管制编号要转成character
get_water <- readLines(waterurl, encoding = "UTF-8") #逐行读取页面
temp1 <- grep('var watlist =', get_water) #确认水污染资料的行数
y <- regexpr('\\[.{0,}\\]', get_water[temp1]) #计算水污染资料的起始位置
z <- y + attr(y, "match.length") - 1 #计算水污染资料的结束位置
waterlist <- substr(get_water[temp1], y, z) #裁切
if (waterlist == "[]"){
} else {
waterjson <- fromJSON(waterlist)
watertable <- cbind(regino_char, waterjson) #第一栏置入管制编号
watertotal <- rbind(watertotal, watertable)
}
}