Hoje eu quero te mostrar como buscar cotações de energia diariamente com VBA usando o selenium para trazer esses dados!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Fala, Impressionadores! Na aula de hoje vamos mostrar como buscar cotações de energia da web com VBA de forma automática!
A ideia é te mostrar como buscar cotações diariamente com VBA para automatizar os seus processos e deixar tudo mais fácil.
Para fazer essa busca nós vamos fazer o webscraping com Selenium no VBA, que nada mais é do que uma busca na web.
Para isso vamos utilizar o Selenium no VBA que permite essa busca através do navegador (links estão na descrição da videoaula para download).
Isso quer dizer que nessa aula você vai aprender a buscar dados da web com Selenium seja para cotações de energia ou para outras informações que você precise!
Links para download
Em um primeiro momento precisaremos baixar para o computador a biblioteca de comandos, objetos e métodos do Selenium.
Elas devem ser instaladas no seu computador com o instalador do programa, normalmente.
Esses serão usados e acessados para que o VBA faça essa integração com os outros navegadores que não sejam o Internet Explorer (integração nativa).
Logo após você terá, com o VBA aberto, que:
Pronto, a partir daqui sua biblioteca Selenium estará ativada para uso em seu VBA.
Além da biblioteca de comandos do Selenium, nós precisaremos fazer o download dos drivers dos navegadores extras (não nativos – Opera, Mozzilla, Google Chrome).
Esses drivers serão acessados e utilizados justamente pela biblioteca instalada o Selenium, para que o VBA possa fazer a comunicação/integração dos códigos e fazer ações nos navegadores.
Teremos que instalar esses drivers no local específico do computador onde estará instalado o Selenium. Abaixo mostramos um exemplo de onde ele pode/deve estar instalado:
OBS: cada computador tem um caminho específico.
Código de aula e comentários
Option Explicit
Sub buscarCotacaoDiaria()
Dim navegadorChrome As New ChromeDriver
Dim linkPesquisa As String
Dim mediaDiaria As Object
Dim ultLin As Long
ultLin = Range("A1000000").End(xlUp).Row
If Cells(ultLin, 1).Value = Date Then Exit Sub
Cells(ultLin + 1, 1).Value = Date
linkPesquisa = "https://www.ccee.org.br/web/guest"
navegadorChrome.AddArgument ("--headless")
navegadorChrome.Get (linkPesquisa)
Set mediaDiaria = navegadorChrome.FindElementByTag("table").FindElementsByTag("tr")(3).FindElementsByTag("td")
Cells(ultLin + 1, 2).Value = CDbl(mediaDiaria(2).Attribute("innerText"))
Cells(ultLin + 1, 3).Value = CDbl(mediaDiaria(3).Attribute("innerText"))
Cells(ultLin + 1, 4).Value = CDbl(mediaDiaria(4).Attribute("innerText"))
Cells(ultLin + 1, 5).Value = CDbl(mediaDiaria(5).Attribute("innerText"))
navegadorChrome.Quit
Set navegadorChrome = Nothing
Set mediaDiaria = Nothing
End Sub
Comentários sobre a macro buscarCotacaoDiaria():
Ao final do código, teremos os valores pesquisados na células das colunas B até E adquirido a partir da visita ao site. Veja abaixo:
Após clicar no botão:
Nessa aula você lidou com:
Até o próximo post! Fique ligado no nosso canal do Youtube para mais conteúdo de Excel, VBA, Power BI e PowerPoint toda semana! Um abraço!
Para acessar outras publicações de VBA, clique aqui!
Quer aprender mais sobre VBA com um Minicurso Gratuito?
Expert em VBA e Power BI da Hashtag Treinamentos. Auxilia no suporte aos alunos da Hashtag Treinamentos e na criação de conteúdos para os que acompanham nossos canais.