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