Fórum Excel Bácico, Avançado e Vba
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Fórum Excel Bácico, Avançado e Vba

Este fórum é destina a usuário de Excel, que queiram compartilhar informações a básicas, avançadas e programação em VBA...
 
InícioInício  Últimas imagensÚltimas imagens  ProcurarProcurar  RegistarRegistar  Entrar  

 

 Extrair dados de uma página do IE

Ir para baixo 
2 participantes
AutorMensagem
marvinmv




Mensagens : 6
Data de inscrição : 04/05/2013

Extrair dados de uma página do IE Empty
MensagemAssunto: Extrair dados de uma página do IE   Extrair dados de uma página do IE EmptySáb maio 04, 2013 1:00 am

Olá pessoal,
é a minha primeira vez no fórum e pelo que vi vocês são bem presentes, isso é bem legal.
eu gostaria de uma ajuda dos veteranos no VBA do Excel. No momento surgiu uma necessidade de extrair alguns dados
de um site e estou tendo dificuldade com a biblioteca do Internet Explorer. Devido ao primeiro contato com a biblioteca estou perdido entre que classes usar, etc! então vou mostrar o que exatamente eu gostaria de extrair. Qualquer coisa podem me corrigir, eu posso estar seguindo o caminho errado.
---------------------------------------------------------------------------------------
usando a ferramenta do desenvolvedor, em Properties:

>properties
>html
>children:HtmlCollection[2]
>1:frameset
>ChildNodes:NodeList[5]
>3:frame#frmMain
>ContentDocument:document
>All:HtmlAllCollection[114]
>[0...99]
>21:td
>innertext
>22:
>innertext
...
...
>55
>innertext


Esse é o caminho dos dados que preciso que estão em innertext, mas não consigo fazer referência a esses textos.
Se alguém souber como fazer esses links e jogar para uma célula da planilha me expliquem por favor.

Obrigado desde já!!
Abraço.

Ir para o topo Ir para baixo
alexandrevba

alexandrevba


Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

Extrair dados de uma página do IE Empty
MensagemAssunto: Re: Extrair dados de uma página do IE   Extrair dados de uma página do IE EmptySáb maio 04, 2013 3:12 am

Boa noite!!

Veja se ajuda:
http://vbcity.com/forums/t/126217.aspx

Att
Ir para o topo Ir para baixo
marvinmv




Mensagens : 6
Data de inscrição : 04/05/2013

Extrair dados de uma página do IE Empty
MensagemAssunto: Re: Extrair dados de uma página do IE   Extrair dados de uma página do IE EmptySáb maio 04, 2013 8:45 pm

AlexandreVBA

obrigado pela resposta! Vou aplicar esses códigos no meu problema e segunda retorno com o resultado. Pelo que entendi ele extrai tudo da pagina, eu só queria certos valores mas se eu conseguir por um próximo tratamento retira-los já poderia me adiantar demais.
Ir para o topo Ir para baixo
alexandrevba

alexandrevba


Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

Extrair dados de uma página do IE Empty
MensagemAssunto: Re: Extrair dados de uma página do IE   Extrair dados de uma página do IE EmptySáb maio 04, 2013 10:16 pm

Boa tarde!!

Veja esse modelo que encontrei ao pesquisar, talvez possa ajudar.
Código:
Sub Vai_Tentando_Ai()
    Dim lnk As Object, ie As Object, doc As Object, i As Long
    Set ie = CreateObject("InternetExplorer.Application")
    With ie
        .Visible = True
        .Navigate "http://suggestadoctor.com/doctors_list_al_310_alabama_urology.htm"
        Do Until .readyState = 4: DoEvents: Loop
            Set doc = ie.document
           
            For Each lnk In doc.Links
                i = i + 1
                Range("A" & i) = lnk.innerText
                Range("B" & i) = lnk
            Next lnk
        End With
    End Sub
Ir para o topo Ir para baixo
marvinmv




Mensagens : 6
Data de inscrição : 04/05/2013

Extrair dados de uma página do IE Empty
MensagemAssunto: Re: Extrair dados de uma página do IE   Extrair dados de uma página do IE EmptySeg maio 06, 2013 6:27 pm

AlexandreVBA,
Consegui, com sua ajuda, transferir os textos de um site para o excel, porém ele passou o texto todo para uma unica célula. Eu sei aonde está o erro mas não sei como chegar na solução ótima.
No meu exemplo:

Set htm = ie.document

Set oHTMLBod = htm.body 'aqui eu seleciono toda a pagina, porém eu gostaria de quebrar os textos em diferentes células

Range("A" & i) = oHTMLBod.innerText


acho que seria só uma referência, em vez de .body algo como um .body.(?) !
Como estou começando agora com este tipo de extração é tudo muito novo e tenho muitas dúvidas, então se puder me auxiliar novamente, ficaria muito grato.
qualquer novidade eu volto a postar.
obrigado.



Ir para o topo Ir para baixo
marvinmv




Mensagens : 6
Data de inscrição : 04/05/2013

Extrair dados de uma página do IE Empty
MensagemAssunto: Re: Extrair dados de uma página do IE   Extrair dados de uma página do IE EmptySeg maio 06, 2013 10:55 pm

Alexandrevba,

sabendo que tenho uma tabela onde estão esses dados desejados, como faço a referência para suas linhas e colunas? Eu tentei com este comando, mas não deu certo aqui:

"variável do objeto ou a variável do bloco 'with' não foi definida"


Código:
With htm.getElementsByTagName("Table")(2)
    Sheets(1).Cells(1, 1).Value = .Cells(1).outerText
    Sheets(1).Cells(2, 1).Value = .Cells(2).outerText
End With

acho que por esse caminho eu vou fragmentar o texto para um melhor tratamento.


Ir para o topo Ir para baixo
alexandrevba

alexandrevba


Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

Extrair dados de uma página do IE Empty
MensagemAssunto: Re: Extrair dados de uma página do IE   Extrair dados de uma página do IE EmptyTer maio 07, 2013 3:26 am

Boa noite!!

Tem como você mandar seu arquivo, deposite seu arquivo em site gratuito como sendspace e nos mande o link.


Att
Ir para o topo Ir para baixo
marvinmv




Mensagens : 6
Data de inscrição : 04/05/2013

Extrair dados de uma página do IE Empty
MensagemAssunto: Re: Extrair dados de uma página do IE   Extrair dados de uma página do IE EmptyTer maio 07, 2013 5:39 pm

Eu não posso mandar o site por segurança, mas esse é meu código.

Código:
Dim oHTMLDoc As Object
Dim oHTMLBod As Object
 Dim lnk As Object, IE As Object
Dim objIE As SHDocVw.InternetExplorer 'microsoft internet controls (shdocvw.dll)
Dim htmlInput As MSHTML.HTMLInputElement
   
    Consulta = "SITE.asp"
   
    Set objIE = New SHDocVw.InternetExplorer

Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True

Dim Url As String
Url = "SITE.br/"
IE.Navigate Url
Do While IE.readyState <> 4
    DoEvents
Loop
 
Set htm = IE.document
 
Do
    Set frms = htm.forms(0)
    If Not frms Is Nothing Then Exit Do
Loop
 
For i = 1 To frms.Length
    Set frm = frms(i - 1)
    Cells(i, 1) = frm.Name
Next i
 
frms("Tx_Login").Value = "Login"
frms("Tx_Senha").Value = "Senha"
SendKeys "{ENTER}", True
Do Until .readyState = 4: DoEvents: Loop

With IE
        .Visible = True
        .Navigate "SITE.asp"
        Do Until .readyState = 4: DoEvents: Loop
End With

Set oHTMLDoc = IE.document
With htm.getElementsByTagName("Table")(2)
    Sheets(1).Cells(1, 1).Value = .Cells(1).outerText
    Sheets(1).Cells(2, 1).Value = .Cells(2).outerText
End With

'Este último with não executa.




Abaixo esta o código da tabela desejada da pagina. Eu acho que fiz uma referência errada a esta tabela.


Código:
<table border="0" width="760" style="margin: 0px;">
      <tbody><tr>
        <td colspan="3" align="center" style="padding:10px;">
          <span class="titulo">djaskdjsakldjsakl</span>
        </td>
      </tr>
         
     
         
      <tr>
        <td rowspan="2" bgcolor="yellow" align="center" style="font-family: verdana; font-size: 7pt; font-weight: bold;">xxxx
        %</td>
        <td class="dado">Valor orçamentário de diárias: R$ xxxxx</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td class="dado">Valor executado de diárias : R$ xxxxxx</td>
        <td class="dado" style="color:#0000FF;">Saldo: R$ xxxxxx</td>
      </tr>
      <tr>
        <td colspan="3">&nbsp;</td>
      </tr>

     
     
      <tr>
        <td rowspan="2" bgcolor="MediumSeaGreen" align="center" style="font-family: verdana; font-size: 7pt; font-weight: bold; padding: 3px;">xxxx
        %</td>
        <td class="dado">Valor orçamentário : R$ xxxxx</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td class="dado">Valor executado de diárias : R$ xxxxx</td>
        <td class="dado" style="color:#0000FF;">Saldo: R$ xxxx</td>
      </tr>
      <tr>
        <td colspan="3">&nbsp;</td>
      </tr>
     
     
     
      <tr>
        <td rowspan="2" bgcolor="MediumSeaGreen" align="center" style="font-family: verdana; font-size: 7pt; font-weight: bold;">xxxx
        %</td>
        <td class="dado">Valor orçamentário: R$ xxxxx</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td class="dado">Valor executado: R$ xxxxx</td>
        <td class="dado" style="color:#0000FF;">Saldo: R$ xxxxx</td>
      </tr>
      <tr>
        <td colspan="3">&nbsp;</td>
      </tr>
   
     
   
      <tr>
        <td rowspan="2" bgcolor="yellow" align="center" style="font-family: verdana; font-size: 7pt; font-weight: bold;">xxx%</td>
        <td class="dado">Valor orçamentário: R$ xxxxxx</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td class="dado">Valor executado: R$ xxxxx</td>
        <td class="dado" style="color:#0000FF;">Saldo: R$ xxxxx</td>
      </tr>
     
      <tr>
        <td colspan="3">&nbsp;</td>
      </tr>
     
    </tbody></table>

agradeço todo seu esforço em me ajudar Alexandrevba, muito obrigado mesmo.
Ir para o topo Ir para baixo
marvinmv




Mensagens : 6
Data de inscrição : 04/05/2013

Extrair dados de uma página do IE Empty
MensagemAssunto: Re: Extrair dados de uma página do IE   Extrair dados de uma página do IE EmptyTer maio 07, 2013 9:07 pm

Alexandrevba,

consegui extrair elementos da <TABLE>
desta forma: (acabou sendo uma solução simples hehe)

Código:
 Set tabela = IE.document.getElementsByTagName("Table")
 Sheets(2).Cells(2, 1).Value = tabela(1).Rows(1).Cells(0).innerText 
 Sheets(2).Cells(2, 2).Value = tabela(1).Rows(1).Cells(1).innerText 

Agora o tratamento é mais tranquilo!!
A parte difícil acabou. rsrs
Mas acho que vou continuar fuçando esta biblioteca porque achei muito interessante manipular o IE.
tem muitas coisas que já tenho em mente. Very Happy
Muito obrigado alexandrevba pelo suporte. Você foi de grande ajuda.

Sucesso em seus projetos.
abraços!
Ir para o topo Ir para baixo
alexandrevba

alexandrevba


Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

Extrair dados de uma página do IE Empty
MensagemAssunto: Re: Extrair dados de uma página do IE   Extrair dados de uma página do IE EmptyQua maio 08, 2013 2:09 am

Boa noite!!!

Se você conseguiu resolver eu fico feliz!!!

Até a próxima.

Att
Ir para o topo Ir para baixo
Conteúdo patrocinado





Extrair dados de uma página do IE Empty
MensagemAssunto: Re: Extrair dados de uma página do IE   Extrair dados de uma página do IE Empty

Ir para o topo Ir para baixo
 
Extrair dados de uma página do IE
Ir para o topo 
Página 1 de 1
 Tópicos semelhantes
-
» EXTRAIR INFORMAÇÕES DE UM BANCO DE DADOS EXTERNO
» Importar base de dados de uma página WEB
» Copiar Dados de Formulário Para Banco de Dados Salvo no disco C:
» Extrair uma determinado numero
» Ajuda! Gravar dados da célula e compara-lo com dados Atuais.

Permissões neste sub-fórumNão podes responder a tópicos
Fórum Excel Bácico, Avançado e Vba :: Avançado/VBA :: Excel Avançado/VBA-
Ir para: