VBA Web Scrapping para se destacar
โก Resumo Inteligente
raspagem da webping com VBA extracExtrair dados de pรกginas web HTML diretamente para o Excel, usando a automaรงรฃo do Internet Explorer e o Microsoft Biblioteca de objetos HTML para navegar em um site, ler uma tabela HTML e escrever os valores coletados em cรฉlulas de uma planilha.

O que รฉ Data Scrap?ping?
raspagem de dadosping รฉ a tรฉcnica que ajuda extracExtrai as informaรงรตes desejadas de uma pรกgina web HTML para um arquivo local em seu computador. Normalmente, esse arquivo local รฉ um arquivo do Excel, um arquivo do Word ou qualquer outro tipo de arquivo. Microsoft Aplicativo de escritรณrio. Ele ajuda a direcionar informaรงรตes importantes da pรกgina da web.
raspagem de dadosping Torna-se valioso em um projeto baseado em pesquisa que depende da internet diariamente. Para ilustrar, considere um day trader que executa uma macro do Excel para extrair informaรงรตes de mercado de um site financeiro e inseri-las em uma planilha do Excel usando VBA.
Como preparar a macro do Excel antes da extraรงรฃo de dadosping (Internet Explorer)
Existem alguns prรฉ-requisitos que devem ser atendidos no arquivo de macro do Excel antes de iniciar a extraรงรฃo de dados.ping processo.
Esses prรฉ-requisitos sรฃo os seguintes:
Passo 1) Abra uma macro baseada no Excel e acesse a opรงรฃo Desenvolvedor do Excel.
Passo 2) Selecione a opรงรฃo Visual Basic na faixa de opรงรตes Desenvolvedor.
Passo 3) Insira um novo mรณdulo.
Passo 4) Inicialize uma nova sub-rotina.
Sub test() End Sub
O mรณdulo resultaria da seguinte forma:
Passo 5) Acesse a opรงรฃo Referรชncia na guia Ferramentas e faรงa referรชncia a Microsoft Biblioteca de objetos HTML e Microsoft Controles da Internet.
Os seguintes arquivos devem ser referenciados pelo mรณdulo, pois ajudam a abrir o Internet Explorer e facilitam a criaรงรฃo de scripts de macro.
Agora o arquivo Excel estรก pronto para interagir com o Internet Explorer. O prรณximo passo รฉ incorporar scripts de macro que facilitem a extraรงรฃo de dados.ping em HTML.
Como abrir o Internet Explorer usando VBA do Excel
Passo 1) Inicialize a variรกvel na sub-rotina conforme mostrado abaixo.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument
Passo 2) Para abrir o Internet Explorer usando VBA, escreva ie.Visible = True e pressione F5.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument ie.Visible = True
O mรณdulo teria a seguinte aparรชncia:
Como abrir um site no Internet Explorer usando VBA
Aqui estรฃo os passos para abrir um site no Internet Explorer usando VBA.
Passo 1) Depois de conseguir acessar o Internet Explorer usando o VBA do Excel, o prรณximo passo รฉ acessar um site usando o VBA. Isso รฉ facilitado pelo atributo Navigate, onde o URL รฉ passado entre aspas duplas. Siga os passos indicados.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE
Passo 2) Pressione F5 para executar a macro. A seguinte pรกgina da web serรก aberta conforme mostrado.
Agora a macro do Excel estรก pronta para executar a raspagem.ping funรงรตes. O prรณximo passo mostra como a informaรงรฃo pode ser extracextraรญdo do Internet Explorer usando VBA.
Como extrair informaรงรตes de um site usando VBA
Suponha que o investidor diรกrio queira acessar os dados do site diariamente. Cada vez que o investidor clicar no botรฃo, os dados de mercado devem ser automaticamente importados para o Excel.
A partir do site acima, รฉ necessรกrio inspecionar um elemento e observar como os dados estรฃo estruturados.
Passo 1) Acesse o cรณdigo-fonte do HTML abaixo pressionando Control + Shift +I.
<table class="datatable">
<thead>
<tr>
<th>Company</th>
<th>Group</th>
<th>Pre Close (Rs)</th>
<th>Current Price (Rs)</th>
<th>% Change</th>
</tr>
O cรณdigo-fonte seria o seguinte:
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document
Como vocรช pode ver, os dados estรฃo estruturados como uma รบnica tabela HTML. Portanto, para extrair todos os dados da tabela HTML, vocรช deve criar uma macro que colete os dados como uma coleรงรฃo.
Em seguida, a coleรงรฃo รฉ colada no Excel. Para obter os resultados desejados, siga os passos abaixo.
Passo 2) Inicialize o documento HTML na sub-rotina.
Passo 3) Inicialize o elemento de coleรงรฃo presente no documento HTML.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table")
Passo 4) Inicialize as cรฉlulas da planilha do Excel com a ajuda de um loop aninhado, conforme mostrado.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table")
O Excel pode ser inicializado usando o atributo Range ou o atributo Cells da planilha. Para reduzir a complexidade do script VBA, os dados da coleรงรฃo sรฃo inicializados com o atributo Cells da Planilha 1 na pasta de trabalho.
Assim que o script da macro estiver pronto, atribua a sub-rotina a um botรฃo do Excel e saia do mรณdulo VBA. Dรช ao botรฃo o nome de "Atualizar" ou qualquer outro nome adequado. Neste exemplo, o botรฃo foi rotulado como "Atualizar".
Passo 5) Pressione o botรฃo Atualizar para obter o resultado abaixo.
Passo 6) Compare os resultados no Excel com os resultados no Internet Explorer.











