Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro na importacao de html da Infomoney

Queria que o meu programa atualizasse um DataFrame de uma determinada acao. Escolhi a tabela do site Infomoney, mas so aparece os titulos da tabela. Por que nao mostram as linhas?

df_html = pd.read_html('https://www.infomoney.com.br/cotacoes/petrobras-petr3/historico/')
df_html[0]
2 respostas
solução!

Oii Keigo, tudo bem por ai?

Analisamos aqui e o site da InfoMoney tem uma tabela dinâmica gerada pelo JavaScript, então quando o Pandas vai realizar a leitura, ele acha apenas o cabeçalho da tabela, como podemos ver apertando o CTRL + U no site e na imagem abaixo.

Print de Tela do código da tabela do InfoMoney

O comando read_html é responsável por analisar um código estático, sem se importar com os carregamentos posteriores do JavaScript, ele só visualiza o que foi carregado primeiro. Usando apenas a biblioteca Pandas não conseguimos fazer a leitura.

Eu testei seu código com o site do Yahoo Finanças, com a mesma ação que você gostaria de analisar (PETR3), e consegui fazer a leitura da tabela completa que o site disponibiliza.

df_html = pd.read_html('https://br.financas.yahoo.com/quote/PETR3.SA/history?p=PETR3.SA')
df_html[0]

E obtive essa tabela como resposta

Tabela obtida com o código do aluno,  com o link do Yahoo Finanças

Caso você ainda queira utilizar o site da InfoMoney, será necessário utilizar a biblioteca Selenium e o processo precisará de um pouco mais de tempo e conhecimento da biblioteca para ser feito.

Caso tenha mais alguma dúvida, estou a disposição! :)

Sthefanie,

Resposta completa que alem de esclarecer o erro, me deu um norte de onde pesquisar essa biblioteca Selenium! Muito obrigado pela ajuda e atenção!!