3
respostas

erro: Error in htmlParse(html2, asText = TRUE) : could not find function "htmlParse"

quando executo o código da essa mensagem de erro.

hile (ano_mes_corrente  <= 201709) {
  site <- paste("http://www.nuforc.org/webreports/ndxe", as.character(ano_mes_corrente), ".html")
  site <- gsub (" ", "", site)
  html2 <- GET(site)
  parsed <- suppressMessages(htmlParse(html2, asText=TRUE))
  tableNodes <- getNodeSet(parsed, "//table")
  tb <- readHTMLTable(tableNodes[[1]])
  df_OVNI <- rbind(df_OVNI,tb)
  if (mes_corrente == 12)
  {
      mes_corrente <- 1
      ano_corrente <- ano_corrente + 1
      ano_mes_corrente <- (ano_corrente * 100) + mes_corrente
  }
  else
  {
    mes_corrente <- mes_corrente + 1
    ano_mes_corrente <- ano_mes_corrente + 1 
  }
  print(ano_mes_corrente)
}
3 respostas

Oi Lucas, :)

o que esse erro diz é que o R não está conseguindo achar a função htmlParse, então não consegue fazer o que estamos pedindo.

Como precisamos do pacote XML para acessarmos essa função, geralmente quando isso acontece é porque não fizemos o load do pacote.

Para fazermos o load, precisamos adicionar a linha abaixo ao código:

library(XML)

Veja se assim o erro é resolvido.

E qualquer outra dúvida, só postar aqui. o/

AGORA APARECE O SEGUINTE ERRO:

> library(XML)
Error in library(XML) : there is no package called ‘XML’

Oi Lucas,

nesse caso, repare que o erro está dizendo que não existe esse pacote.

O que acontece é que para usarmos as funções de dentro pacote, como a HTMLparse, precisamos instalar o pacote e depois carregá-lo.

Caso a gente não instale, é como se ele ainda não existisse para o R, e se não o carregarmos, o R não consegue achar o que está dentro dele.

Então para as duas (ou mais) bibliotecas (que são vários códigos prontos) que você for usar no código, é sempre necessário fazer esses dois movimentos:

  • instalação
  • carregamento

Para a de XML, os dois ficam como abaixo:

  • instalação: install.packages('XML')

  • carregamento: library(XML)

É melhor para o código fazer esses movimentos, ou colocar essas duas linhas antes de usar os conteúdos dos pacotes, então você pode deixá-las como primeiras linhas, antes do resto do código.

E também, pelo que vi no curso, parece que você precisará fazer o mesmo para o pacote httr, então pode adicionar:

install.packages('httr')
library(httr) 

O resultado final deve ser algo como abaixo:

install.packages('httr') 
install.packages('XML') 
library(httr) 
library(XML)

Inclusive, o pacote só precisa ser instalado uma vez, você não precisa instalar sempre, então poderá comentar essas linhas da instalação numa segunda execução do código.

E aí ficaremos com:

# install.packages('httr') 
# install.packages('XML') 
library(httr) 
library(XML)

df_OVNI  <- data.frame()
mes_corrente = 9
ano_corrente = 1997
ano_mes_corrente = (ano_corrente * 100) + mes_corrente
while (ano_mes_corrente  <= 201709) 
... 
(o resto do código a partir daqui)

Espero ter esclarecido :p

Qualquer outra dúvida, só postar aqui!