Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Download em Lote de Faturas de Energia com Selenium VBA

A Web está aí, não há como negar. Ela é onipresente em praticamente toda operação eletrônica realizada nos dias de hoje. Como não podia ser diferente, o Excel, ferramenta máxima para analistas e profissionais das mais diversas áreas do mercado precisa estar alinhado com esta necesssidade. E ele está! Neste forum, o debate é focado em expor dúvidas, sugestões, modelos de código e exemplos de uso do Excel na Integração com tecnologias Web.
Avatar do usuário
Ander
Colaborador
Colaborador
Mensagens: 14
Registrado em: Qua Jan 27, 2016 8:42 am

Download em Lote de Faturas de Energia com Selenium VBA

Mensagem por Ander »

Prezados,
Quero agradecer desde já a enorme contribuição do Tomaz, pois através dele conheci o Selenium, que aliado ao VBA excel me ajudará em muitos projetos. No entanto gostaria de instigar os entusiastas destas ferramentas a me ajudarem a resolver o dilema de um projeto, que logicamente será amplamente divulgada de modo a contribuir com os projetos desta comunidade.
Desenvolvi uma rotina em VBA no excel para fazer download de várias faturas de energia do site da fornecedora de energia em SC, a CELESC, já que faço análise dos gastos de nossas unidades. Com o Selenium facilitou muito. As faturas que farei download, uma vez acessadas no site, acham-se no formato PDF. O trabalho de fazer download até que é tranquilo, a grande sacada seria, se eu conseguisse extrair os dados desta fatura para jogar na planilha, assim nem precisaria fazer o download.
E aí alguma idéia?


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Download em Lote de Faturas de Energia com Selenium VBA

Mensagem por Mikel Silveira Fraga »

Ander, bom dia e seja bem vindo ao fórum.

Cara, a ideia é interessante, mas é necessário mais detalhes. Existe algum link do site, com as informações de uma dessas faturas, para analisarmos a estrutura da página? Na própria página, já existe esses valores?

Se as informações estiverem contidas em um elemento Html (table, input, div, etc), com certeza da pra capturar essas informações diretamente do site, utilizando o Selenium.

Aguardo mais informações.

Abraços.


Avatar do usuário
Ander
Colaborador
Colaborador
Mensagens: 14
Registrado em: Qua Jan 27, 2016 8:42 am

Re: Download em Lote de Faturas de Energia com Selenium VBA

Mensagem por Ander »

Olá Mikel, obrigado pelas boas vindas e por ajudar-me nesta questão.

Bem o problema é que teria que dar-lhe acesso a senha, e trata-se do sistema indústria de SC, FIESC.
Farei o seguinte, enviarei algumas informações e você me diz do que precisa. Primeiro vou te enviar o que já consegui fazer com o SELENIUM e ANEXO o html do acesso do PDF.
Por enquanto muito obrigado.

Abraços

O QUE FIZ COM O SELENIUM:
Public Sub Untitled()
Dim selenium As New SeleniumWrapper.WebDriver
selenium.start "firefox", "http://agenciaweb.celesc.com.br:8080/"
selenium.setImplicitWait 5000

selenium.open "/AgenciaWeb/autenticar/autenticar.do"
selenium.type "name=sqUnidadeConsumidora", 26911222
selenium.click "id=CPJ"
selenium.type "name=numeroDocumentoCNPJ", 03774688002107
selenium.clickAndWait "css=input.botao"
selenium.type "name=senha", "SENHA"
selenium.clickAndWait "css=input.botao"
selenium.clickAndWait "link=» Histórico de Pagamento"
selenium.clickAndWait "link=01/2016"
selenium.click "id=download"

selenium.stop
End Sub
Anexos
HTML DO PDF.PNG
HTML DO PDF.PNG (165.18 KiB) Exibido 9445 vezes


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Download em Lote de Faturas de Energia com Selenium VBA

Mensagem por Mikel Silveira Fraga »

Ander, bom dia.

Cara, eu consigo entender a questão do uso empresarial, mas realmente isso vai fazer com que essa solução se torne muito mais complicada. Mas vamos dar continuidade.

Pelo código que você enviou, consegui enxergar bem até a parte abaixo:

Código: Selecionar todos

selenium.type "name=senha", "SENHA"
selenium.clickAndWait "css=input.botao"
Posterior a isso, eu não consegui acesso, devido a necessidade da senha, como também não consegui identificar nenhuma das referências posteriores, na imagem que você me enviou.

Agora, o código completo, pelo que entendi, vai abrir o arquivo ".pdf" diretamente no navegador, certo? A questão é saber se as informações que estão dentro do arquivo, por exemplo o consumo, são exibidas na mesma página em que existe o link para download do arquivo. Se essas informações existirem na página, seria necessário o código fonte dessa área das informações.

Agora, quando você deu a sugestão de pegar as informações e jogar diretamente para a planilha, você sugeriu fazer isto, puxando do arquivo ".pdf"? Se sim, até onde conheço do Selenium VBA, e sou bem novo no uso dessa biblioteca, não tem como capturar a informação diretamente do arquivo. Também não conheço nenhum outro recurso em VBA que auxilie na extração das informações de um arquivo ".pdf".

Fico no aguardo de seu retorno sobre os questionamentos acima.
Abraços.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Ander
Colaborador
Colaborador
Mensagens: 14
Registrado em: Qua Jan 27, 2016 8:42 am

Re: Download em Lote de Faturas de Energia com Selenium VBA

Mensagem por Ander »

Olá meu caro Mikel,

Demorei um pouco , pois estava em viagem a trabalho e não pude entrar no fórum, mas poderíamos retomar de onde paramos?
Agora creio que posso lhe passar os dados para vc tentar um teste.


Avatar do usuário
Ander
Colaborador
Colaborador
Mensagens: 14
Registrado em: Qua Jan 27, 2016 8:42 am

Re: Download em Lote de Faturas de Energia com Selenium VBA

Mensagem por Ander »

Parecia estar indo bem, mas apareceu outro problema e gostaria de saber se poderia me ajudar.
Quando meu código com selenium abre a página "200.247.127.47:8080/AgenciaWeb/autenticar/loginCliente.do", meu chrome não abre com este dado na barra de endereço, mas sim com isso: "data:,". O que pode ser?
Abaixo segue o código (se passar teu email/celular te passo o login e senha):

Public Sub Untitled()
Dim selenium As New SeleniumWrapper.WebDriver
Dim iLinha As Integer
Dim Qtde As Integer
Dim CNPJ As String
Dim UC As String
Dim SENHA As String
'Dim PERIODO As String

Qtde = 17 ' define a quantidade de linhas a percorrer na planilha.

For iLinha = 12 To 17

CNPJ = Plan1.Cells(iLinha, 2).Value
UC = Plan1.Cells(iLinha, 3).Value
SENHA = Plan1.Cells(iLinha, 4).Value
'PERIODO = Plan1.Cells(9, 3).Value

selenium.Start "chrome", "http://200.247.127.47:8080/Age.../auten ... Cliente.do"
selenium.setImplicitWait 5000

selenium.Open "/AgenciaWeb/autenticar/autenticar.do"
selenium.Type "name=sqUnidadeConsumidora", UC
selenium.Click "id=CPJ"
selenium.Type "name=numeroDocumentoCNPJ", CNPJ
selenium.clickAndWait "css=input.botao"
selenium.Type "name=senha", SENHA
selenium.clickAndWait "css=input.botao"
selenium.clickAndWait "link=» Histórico de Pagamento"
selenium.clickAndWait "link=01/2016"
selenium.Click "id=save"

selenium.stop
Next iLinha
End Sub


Avatar do usuário
Ander
Colaborador
Colaborador
Mensagens: 14
Registrado em: Qua Jan 27, 2016 8:42 am

Re: Download em Lote de Faturas de Energia com Selenium VBA

Mensagem por Ander »

Segue uma imagem da situação.
Anexos
SeleniumIMG.png
SeleniumIMG.png (210.95 KiB) Exibido 9369 vezes


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Download em Lote de Faturas de Energia com Selenium VBA

Mensagem por Mikel Silveira Fraga »

Ander, bom dia.

Cara, até achei que havia resolvido tudo, mas pelo que vejo ainda não resolveu. Claro, podemos continuar sim.

Eu também tive esse tipo de problema no início. Na verdade não sei ao certo o que foi que resolveu meu problema, mas o erro parou depois de algumas alterações.

Olha, tente fazer a seguintes mudanças, conforme abaixo:

Código: Selecionar todos

selenium.Start "chrome", "http://200.247.127.47:8080/Age.../autenticar/loginCliente.do"
selenium.setImplicitWait 5000

selenium.Open "/AgenciaWeb/autenticar/autenticar.do"
Altere essa parte do código, da seguinte forma:

Código: Selecionar todos

selenium.Start "chrome", "http://200.247.127.47:8080"
selenium.setImplicitWait 5000

selenium.Open "/AgenciaWeb/autenticar/loginCliente.do"
selenium.setImplicitWait 5000

selenium.Open "/AgenciaWeb/autenticar/autenticar.do"
Tente alterar essa parte do bloco e veja se resolve.

Dúvidas, a disposição.


Avatar do usuário
Ander
Colaborador
Colaborador
Mensagens: 14
Registrado em: Qua Jan 27, 2016 8:42 am

Re: Download em Lote de Faturas de Energia com Selenium VBA

Mensagem por Ander »

Mikel até resolveu e te agradeço pela dica. Continua aparecendo aquele "data:,", mas com a segmentação do código, ele reconhece a segunda parte do endereço e se completa, abrindo a página .
Chego até o ponto de abrir a fatura , mas não consigo salvar o pdf.
Posso te passar por email o acesso caso possa fazer um teste aí pra mim.


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Download em Lote de Faturas de Energia com Selenium VBA

Mensagem por Mikel Silveira Fraga »

Opa, boa tarde.

Se não tiver problema, pode sim.

Pode mandar para o e-mail que esta em minha assinatura, ok.

Fico no aguardo.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder