Notifications
Clear all

Obter Dados Externos - Web

8 Posts
2 Usuários
0 Reactions
2,229 Visualizações
(@milenamoreno)
Posts: 51
Trusted Member
Topic starter
 

Um ótimo dia a todos!

Eu estava tentando "baixar" algumas tabelas de dados de uma página da internet, mas não estou conseguindo. Eu liguei o gravador de macro e tentei acessar e baixar o cronograma de publicação dos balanços que estão na página http://www.infomoney.com.br/mercados/agendas , até ai tudo bem, mas quando clico na aba "RESULTADOS", simplesmente o excel não responde mais.

Eu queria baixar a tabela com a data de publicação dos balanços do 2T12, 3T12 E 4T12.

Alguém sabe o motivo de não conseguir acessar essas tabelas?

Agradeço antecipadamente

 
Postado : 16/01/2013 3:34 am
(@milenamoreno)
Posts: 51
Trusted Member
Topic starter
 

Tentei "burlar" esta dificuldade através de busca de tabelas da página, consegui com a rotina abaixo pegar a tabela da página principal. Agora falta "clicar" no botão e selecionar o 3t12. Alguém sabe como fazer isso?

Macro que encontrei na net:

Sub AcessaPagina2()

    Dim ie As InternetExplorer
    Set ie = New InternetExplorer
    ie.Navigate "http://www.infomoney.com.br/mercados/agendas"
    ie.Visible = True
        
    Dim elemCollection As Object
    
    Dim t As Integer
    Dim r As Integer, c As Integer
    
    Set elemCollection = ie.Document.getElementsByTagName("TABLE")
    
    For t = 0 To elemCollection.Length - 1
        For r = 0 To elemCollection(t).Rows.Length - 1
            For c = 0 To elemCollection(t).Rows(r).Cells.Length - 1
                ThisWorkbook.Worksheets(1).Cells(r + 1, c + 1) = elemCollection(t).Rows(r).Cells(c).innerText
            Next c
        Next r
    Next t

End Sub
 
Postado : 16/01/2013 4:41 pm
(@milenamoreno)
Posts: 51
Trusted Member
Topic starter
 

Consegui um código que clica sobre "resultados"...Agora falta o que clica sobre 3t12:

Sub teste()
Dim ie
Set ie = CreateObject("internetexplorer.application")
ie.Navigate2 "http://www.infomoney.com.br/mercados/agendas"
 ie.Visible = True
Do Until ie.ReadyState = 4
DoEvents
Loop


Dim LinkFound As Boolean
Dim linkCollection


Set linkCollection = ie.Document.getElementsByTagName("A")
For Each link In linkCollection
If link.InnerText = "Resultados" Then
LinkFound = True
link.Click
Exit For
End If

Next
If Not LinkFound Then
MsgBox "Link Not Found!"
Exit Sub
End If

Do Until ie.ReadyState = 4
DoEvents
Loop

ie.Visible = True
End Sub
 
Postado : 16/01/2013 5:06 pm
(@milenamoreno)
Posts: 51
Trusted Member
Topic starter
 

Consegui "selecionar" o 3T12, mas a página não se atualizou automáticamente. Veja:

Sub teste()
Dim ie
Dim obj

Set ie = CreateObject("internetexplorer.application")
ie.Navigate2 "http://www.infomoney.com.br/mercados/agendas"
 ie.Visible = True
Do Until ie.ReadyState = 4
DoEvents
Loop

Dim LinkFound As Boolean
Dim linkCollection


Set linkCollection = ie.Document.getElementsByTagName("A")
For Each link In linkCollection
If link.InnerText = "Resultados" Then
LinkFound = True
link.Click
Exit For
End If

Next

If Not LinkFound Then
MsgBox "Link Not Found!"
Exit Sub
End If

Do Until ie.ReadyState = 4
DoEvents
Loop

    For Each obj In ie.Document.All.Item("ctl00$cphContent$ctl02$ddlReferencePage").Options
        If obj.InnerText = "3T12" Then
            obj.Selected = True
           ' ie.Document.forms(0).submit '' ESTE COMANDO FAZ VOLTAR TUDO DO ZERO!
            Exit For
        End If
    Next obj

End Sub
 
Postado : 16/01/2013 5:27 pm
(@milenamoreno)
Posts: 51
Trusted Member
Topic starter
 

Consegui desenvolver....

O problema agora é que só está puxando as 10 linhas...

1- Entrar na Página: http://www.infomoney.com.br/mercados/agendas ----OK
2- Clicar no botão "RESULTADOS" ----OK
3- Trocar o Check Box para 3T12 ----OK
4 - Trocar o Check Box para 100 (empresas) ----Pendente
5- Após puxar a tabela com as 100 (empresas), ir para página "2" ----- Pendente.

Planilha até agora: http://www.sendspace.com/file/9v0qg4

 
Postado : 16/01/2013 6:50 pm
(@prmpoker)
Posts: 2
New Member
 

Boa tarde, Milena, tudo bem?
Consegui fazer com que ele percorra todas as abas da tabela, porém ele está pegando os dados de todas as tabelas do site, mesmo as ocultas.
Semana que vem tento te ajudar um pouquinho mais.

Bom trabalho.

Paulinho.

 
Postado : 25/01/2013 3:22 pm
(@milenamoreno)
Posts: 51
Trusted Member
Topic starter
 

Perfeito, PRMPOKER!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Já tinha desistido!!!

Muitissimo obrigado

 
Postado : 26/01/2013 4:06 pm
(@prmpoker)
Posts: 2
New Member
 

Imagina, disponha sempre.
Vou ver se consigo mais tempo essa semana para poder descobrir como aprimorar mais esta interação.
Boa semana e um abração.

 
Postado : 28/01/2013 8:00 am