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.

  • ๐Ÿงฐ Automaรงรฃo VBA: O VBA controla o Internet Explorer a partir do Excel para carregar uma pรกgina da web e ler seu HTML.
  • ๐Ÿ“š Referรชncias necessรกrias: Microsoft Biblioteca de objetos HTML e Microsoft Os controles da Internet devem ser referenciados no projeto.
  • ๐ŸŒ Mรฉtodo de navegaรงรฃo: O mรฉtodo Navigate abre um destino URLE o cรณdigo aguarda atรฉ que a pรกgina esteja pronta.
  • ๐Ÿงฑ Anรกlise de tabelas HTML: getElementsByTagName lรช a tabela para que suas linhas e cรฉlulas possam ser percorridas em um loop.
  • ๐Ÿ“Š Escrever nas cรฉlulas: Os valores coletados sรฃo gravados em cรฉlulas da planilha, geralmente atrรกs de um botรฃo Atualizar.
  • ๐Ÿค– Assistรชncia de IA: Ferramentas de IA e copilotos agora geram sucataping Codifique e adapte os seletores quando os layouts mudarem.

VBA Web Scrapping para se destacar

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.

Prepare a macro do Excel antes da extraรงรฃo de dados.ping usando o Internet Explorer

Passo 2) Selecione a opรงรฃo Visual Basic na faixa de opรงรตes Desenvolvedor.

Prepare a macro do Excel antes da extraรงรฃo de dados.ping usando o Internet Explorer

Passo 3) Insira um novo mรณdulo.

Prepare a macro do Excel antes da extraรงรฃo de dados.ping usando o Internet Explorer

Passo 4) Inicialize uma nova sub-rotina.

Sub test()
End Sub

O mรณdulo resultaria da seguinte forma:

Prepare a macro do Excel antes da extraรงรฃo de dados.ping usando o Internet Explorer

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.

Referรชncia Microsoft Biblioteca de Objetos HTML e Controles da Internet

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:

Abra o Internet Explorer usando Excel VBA

Abra o Internet Explorer usando Excel VBA

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.

Abrir site no Internet Explorer usando VBA

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".

Raspe informaรงรตes do site usando VBA

Passo 5) Pressione o botรฃo Atualizar para obter o resultado abaixo.

Raspe informaรงรตes do site usando VBA

Passo 6) Compare os resultados no Excel com os resultados no Internet Explorer.

Raspe informaรงรตes do site usando VBA

Perguntas Frequentes

Sรฃo necessรกrias duas referรชncias no editor VBA em Ferramentas, Referรชncias: a Microsoft Biblioteca de objetos HTML e Microsoft Controles da Internet. Eles permitem que o VBA abra o Internet Explorer e navegue atรฉ um URLe leia os elementos HTML da pรกgina.

Depende do site. Muitos sites restringem a raspagem automatizada.ping nos termos de serviรงo, portanto, revise-os primeiro e evite coletar dados pessoais ou protegidos por direitos autorais. Scraping Dados pรบblicos e permitidos para anรกlise pessoal geralmente apresentam menor risco.

O Internet Explorer estรก obsoleto, portanto, os projetos modernos usam o Selenium VBA abordagem que impulsiona o Chrome, Firefoxou Borda. Selenium Oferece suporte a vรกrios navegadores e localizaรงรฃo de elementos mais confiรกvel para sites atuais.

Sim. Ferramentas de extraรงรฃo e copilotos com inteligรชncia artificial podem identificar campos de dados, gerar resultados...tracO cรณdigo de รงรฃo e a adaptaรงรฃo automรกtica ร s mudanรงas de layout tambรฉm sรฃo analisados โ€‹โ€‹por modelos de aprendizado de mรกquina, que adaptam-se ร s mudanรงas de layout. Alรฉm disso, esses modelos tambรฉm analisam pรกginas nรฃo estruturadas, reduzindo o esforรงo manual de escrever e manter rascunhos.ping scripts.

A IA utiliza visรฃo computacional e processamento de linguagem natural para reconhecer tabelas, preรงos e textos em uma pรกgina, mesmo sem seletores fixos. Essa inteligรชncia artificial...tracรงรฃo faz arranhรตesping Mais resiliente quando um site muda sua estrutura.

Resuma esta postagem com: