Views

...

Important:

Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog podem ser tratados como consultoria freelance.

E-mails

Deixe seu e-mail para receber atualizações...

eBook Promo

Mineração de Dados: Extraindo tabelas de páginas da Web

Mineração de Dados: Extraindo tabelas de páginas da Web


Como importar uma tabela HTML para a planilha do Excel, quando se consulta uma página na Web? Se qualquer site tem dados em forma de tabelas, usaremos a opção Consulta na Web do Excel para importá-lo,usando-o como um navegador. Neste ponto clicamos com o botão direito na Tabela da Web e escolheremos a opção "Exportar para o Microsoft Excel". 

Esta opção de consulta na Web não funcionará corretamente com algum site. Neste artigo veremos como fazer uma Mineração de Dados apenas com o Excel

Este breve artigo explicará como importar o conteúdo HTML. Será atribuído como um objeto HTMLFile com mais opções de recuperação das tags HTML.

Depois de obtermos o conteúdo da página Web, teremos as respectivas tags relacionadas à tabela como <Table>, <TR> e <TD>.

A última etapa será processar cada linha e célula nessa tabela e transferi-la para a Planilha.

Sub HTML_Table_To_Excel()
    Dim htm As Object
    Dim Tr As Object
    Dim Td As Object
    Dim Tab1 As Object

    'Replace the URL of the webpage that you want to download
    Web_URL = VBA.Trim(Sheets(1).Cells(1, 1))

    'Create HTMLFile Object
    Set HTML_Content = CreateObject("htmlfile")

    'Get the WebPage Content to HTMLFile Object
    With CreateObject("msxml2.xmlhttp")
        .Open "GET", Web_URL, False
        .send
        HTML_Content.Body.Innerhtml = .responseText
    End With

    Column_Num_To_Start = 1
    iRow = 2
    iCol = Column_Num_To_Start
    iTable = 0

    'Loop Through Each Table and Download it to Excel in Proper Format
    For Each Tab1 In HTML_Content.getElementsByTagName("table")
        With HTML_Content.getElementsByTagName("table")(iTable)
            For Each Tr In .Rows
                For Each Td In Tr.Cells
                    Sheets(1).Cells(iRow, iCol).Select
                    Sheets(1).Cells(iRow, iCol) = Td.innerText
                    iCol = iCol + 1
                Next Td
                iCol = Column_Num_To_Start
                iRow = iRow + 1
            Next Tr
        End With
        iTable = iTable + 1
        iCol = Column_Num_To_Start
        iRow = iRow + 1
    Next Tab1

    MsgBox "Process Completed"

End Sub


Limitações

Em muitos sites, mesmo o Facebook, Twitter e páginas web, aparecerão tabelas. Mas elas estão incorporadas dentro das tags DIV e SPAN. É melhor usar as APIs do Facebook, Twitter ao invés de apenas confiar nas tags HTML.


Deixe seus comentários, compartilhe este artigo!

brazilsalesforceeffectiveness@gmail.com
✔ Brazil SFE®✔ Brazil SFE®´s Facebook´s Profile  Google+   Author´s Professional Profile  ✔ Brazil SFE®´s Pinterest       ✔ Brazil SFE®´s Tweets

eBooks VBA na AMAZOM.com.br

LinkWithinBrazilVBAExcelSpecialist

Related Posts Plugin for WordPress, Blogger...

Vitrine