Skip to content

Instantly share code, notes, and snippets.

@rparatodxs
Created June 21, 2019 19:36
Show Gist options
  • Save rparatodxs/3eb40c6c1e24f259ec01815134ac3422 to your computer and use it in GitHub Desktop.
Save rparatodxs/3eb40c6c1e24f259ec01815134ac3422 to your computer and use it in GitHub Desktop.
Webscrap del sitio meteochile version nueva
library(rvest)
#sitio web donde se "toma la decisión" sobre que estación, año, mes extraer (hay que agregar valores)
url <- html_session("https://climatologia.meteochile.gob.cl/application/index/productos/RE1005")
#extraer la "form" que se debe completar
quesepuederellenar <- html_form(url)
extraercamposarellenar <- quesepuederellenar[[1]]
#Vamos a extraer valores para todos los meses de una estación el año 2018
resultados <- list() #almacenará los distintos data frames
for (i in 1:12){
rellenarcampos <- set_values(extraercamposarellenar,
codigo = 180005, #estación metereológica
ano = 2018, #año
mes = i) #mes
mandarsolicitud <- submit_form(url, rellenarcampos)
#url con la información de interés (el resultado es una lista)
urlconinfo <- read_html(mandarsolicitud$url)
#Extraemos la tabla de interés de la lista que nos arrojá la consulta como resultado
tablainteres <- html_table(urlconinfo, fill = TRUE)[[3]]
# Acá¡ dependiendo del mes del año cambiará que número de filas es el que hay que sacar
if (i %in% c(1,3,5,7,8,10,12)){
tablainteres <- tablainteres[-c(33:37),]
} else if (i == 2){
tablainteres <- tablainteres[-c(30:34),]
} else {
tablainteres <- tablainteres[-c(32:36),]
}
resultados[[i]] <- tablainteres #almacenamos data frame
}
resultados #lista con 12 elementos (data frames para cada mes)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment