Senhores, bom dia!

Embora a sugestão do colega Jônatan já deva solucionar o problema, deixo um código que utilizava para consulta. Testei no Ubuntu 16.04 e ainda funciona. Basicamente vai fazer o download dos dados em uma pasta 'Downloads' criada no diretório de trabalho. São criados 2 arquivos para cada estação: um arquivo "bruto" (iniciado por "raw_") e a table (iniciado por "dat_") resultante da importação.

> sessionInfo()
R version 3.2.3 (2015-12-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04 LTS

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8   
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8    LC_PAPER=en_US.UTF-8       LC_NAME=C                
 [9] LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C      

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base    

other attached packages:
[1] XML_3.98-1.4   RCurl_1.95-4.8 bitops_1.0-6 

loaded via a namespace (and not attached):
[1] tools_3.2.3

### <code r>
# ---------------------------------------------------------------------------- #
# INMET/BDMEP - Download Dados DIÁRIOS
# Eder Comunello - 2013.11.08
# ---------------------------------------------------------------------------- #
library(RCurl); library(XML)
setwd('~/LAB/DATCLIMA'); getwd()
if (!file.exists('Download')) dir.create('Download'); dir(incl=T)

# Login ---------------------------------------------------------------------- #
myData  <- scan(text=readLines('BDMEP1.dat')[1], what=character(), sep=';')
myParams=list(mCod   = myData[1], mSenha = myData[2], btnProcesso = " Acessar ")
myCurl  <- getCurlHandle()
myURL1  <- "http://www.inmet.gov.br/projetos/rede/pesquisa/inicio.php"
curlSetOpt(cookiejar="cookies.txt", useragent="Mozilla/5.0", followlocation=TRUE, curl=myCurl)
myLogin <- postForm(myURL1, .params=myParams, curl=myCurl)

# Downloads ------------------------------------------------------------------ #
dError <- dSucess <- as.character(NULL)

dINMET <- function(code=83264, dINI='01/01/1980', dFIM='31/12/1985') {
  myURL <- paste0("http://www.inmet.gov.br/projetos/rede/pesquisa/",
                  "gera_serie_txt.php?&mRelEstacao=", code,
                  "&btnProcesso=serie&mRelDtInicio=", dINI,
                  "&mRelDtFim=",dFIM, "&mAtributos=,,1,1,,,,,,1,1,,1,1,1,1,")
 
  page    <- getURLContent(myURL, curl=myCurl, .encoding="UTF-8")
  hParse  <- htmlParse(page)
  ver1    <- as.character(substr(page,1,20))
  ver2    <- substr(xpathSApply(hParse,'//*/pre', xmlValue, encoding='UTF-8'),1,17)
 
  if (ver1=="Registro Inexistente" | ver2=="Não existem dados") {
    print(paste0(code,': Dados não encontrados!'))
    dError <<- c(dError, code)}
  else {
    print(paste0(code, ': OK!')); dSucess <<- c(dSucess, code)
    hPart    <- xpathSApply(hParse,'//*/pre', xmlValue)
    fileNam1 <- paste0('Download/raw_',code,'.txt')
    cat(hPart, file=fileNam1)
    dLines   <- unlist(strsplit(hPart, "\n"))
    dHead    <- dLines[grep("^Estacao;", dLines)]
    dText    <- append(dHead, dLines[grep("^[0-9]{5,};", dLines)])
    dFrame   <- read.table(text=dText, dec=".", sep=";", head=T)
    fileNam2 <- paste0('Download/dat_',code,'.txt')
    write.table(dFrame, fileNam2, row.names=F)}
}

codEst  <- c(83264, 83267, 83270, 83319, 83332, 83358)
dError <- dSucess <- as.character(NULL)

tryCatch({
  sapply(codEst, function(x) dINMET(x, dINI='01/01/1980', dFIM='31/12/1985'))
         }, error=function(...)"ERROR!")
# [1] "83264: OK!"
# [1] "83267: Dados não encontrados!"
# [1] "83270: Dados não encontrados!"
# [1] "83319: Dados não encontrados!"
# [1] "83332: OK!"
# [1] "83358: OK!"

paste(length(dSucess), 'estações baixadas com sucesso!')
# [1] "3 estações baixadas com sucesso!"

paste(length(dError), 'estações não baixadas!')
# [1] "3 estações não baixadas!"

dir(path="Download")
# [1] "dat_83264.txt" "dat_83332.txt" "dat_83358.txt" "raw_83264.txt" "raw_83332.txt" "raw_83358.txt"

### </code>


================================================
Éder Comunello
Researcher at Brazilian Agricultural Research Corporation (Embrapa)
DSc in Agricultural Systems Engineering (USP/Esalq)
MSc in Environ. Sciences (UEM), Agronomist (UEM)
---
Embrapa Agropecuária Oeste, Dourados, MS, Brazil |<O>|
================================================
GEO, -22.2752, -54.8182, 408m
UTC-04:00 / DST: UTC-03:00




Em 8 de julho de 2016 23:22, Paulo Henrique Pimenta via R-br <r-br@listas.c3sl.ufpr.br> escreveu:

Jônatan,

 

Dentro do que eu fiz vc aconselharia e pensaria em modificar o que para melhorar?

 

Um grande abraço!

 

Paulo Henrique de A. S. Pimenta
Cel/WhatsApp/Telegram: +5511981318435

Sent from Mail for Windows 10

 

From: Jônatan
Sent: Friday, July 8, 2016 5:27 PM
To: Paulo Henrique Pimenta; a lista Brasileira oficial de discussão do programa R.
Subject: Re: [R-br] Baixando dados do INMET com a biblioteca RCurl e bitops/Salvando arquivos em .txt

 

Nesse link disponibilizo umas funções que fiz para importar os dados do site do inmet-bdmep para o R. O readme inclui exemplo de uso das funções. O script é baseado no post citado no e-mail Paulo e nas instruções dadas no vídeo do Meetup R São Paulo (Web scraping usando o R por Julio Trecenti).
Testado no linux ubuntu somente. Em breve devo empacotar isso.
Qualquer problema, me avisem por gentileza.
Att.

2016-07-08 13:03 GMT-03:00 Paulo Henrique Pimenta via R-br <r-br@listas.c3sl.ufpr.br>:

Olá Listeiros!

 

Estou com um grande problema e acho que vcs podem me ajudar! Estou usando um script criado por mim a partir das dicas da própria lista: http://r-br.2285057.n4.nabble.com/R-br-r-baixando-dados-inmet-td4660459.html na qual usei o código como template para automatizar o download dos dados do inmet. Infelizmente estou com alguns problemas, um deles é que só consigo usar o código no Windows, ou seja, no R do Windows e não do Linux (possuo o Windows 10 e o Ubuntu 16.04 no meu notebook).

 

Os erros no meu Linux são referentes a biblioteca RCurl que mesmo reinstalado várias vezes e usado com a biblioteca bitops continuam a não funcionar. Outro problema que tenho é o não conhecimento sobre como salvar os arquivos baixados em um .txt ao invés de alocar em variáveis como estou fazendo. Caso algum de vcs se interesse em mexer e melhorar o código segue ele abaixo:

 

####################################################################################################################

 

### <begin>

library(bitops)

library(RCurl)

 

####################################################################

 

dados_1 <- read.table(

              "E:/inmet/estacoes_2.txt",

              header=F,

              sep="\t")

 

dados_1 <- data.frame(dados_1)

 

#names(dados_1) <- c("cidades", "estacoes")

 

######################################################################

 

# Links para login e dados

 

myURL1 <- "http://www.inmet.gov.br/projetos/rede/pesquisa/inicio.php"

 

for (NUM in 1:length(dados_1[,2])){

 

  myURL2[NUM] <- "http://www.inmet.gov.br/projetos/rede/pesquisa/gera_serie_txt.php?&mRelEstacao=dados_1[,2][NUM]&btnProcesso=serie&mRelDtInicio=01/01/2002&mRelDtFim=01/01/2013&mAtributos=1,,,,1,1,,1,1,,,1,,,,,"

 

# Dados para acesso

myParams=list(

  mCod="SEU EMAIL",

  mSenha="SUA SENHA",

  btnProcesso = " Acessar ")

 

  myCurl <- getCurlHandle()

  curlSetOpt(cookiejar="cookies.txt", useragent="Mozilla/5.0", followlocation=TRUE, curl=myCurl)

 

  login <- postForm(myURL1, .params=myParams, curl=myCurl)

  dados[NUM] <- getURLContent(myURL2[NUM], curl=myCurl)

 

  exemplo[NUM] <- head(strwrap(dados[NUM], 70), 10000)

 

                                   }             

 

### <end>

 

###################################################################################################################

 

O arquivo estacoes_2.txt esta aqui: http://s000.tinyupload.com/?file_id=66921456922777880817

 

Se alguém tiver interesse em modificar para melhorar o código fique a vontade!

 

Um grande abraço a todos vcs!

 

Paulo.

 

Sent from Mail for Windows 10

 


_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.



--
###############################################################
##  Jônatan Dupont Tatsch
##  Professor do Departamento de Física
##  Centro de Ciências Exatas e Naturais (CCNE)
##  Universidade Federal de Santa Maria - UFSM
##  Faixa de Camobi, Prédio 13 - Campus UFSM - Santa Maria, RS, Brasil - 97105-900
##  Telefone: +55(55)33012083
###############################################################

_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.