Selenium Tutorial de VBA para Excel (Web Scrap do Chrome)ping)

⚡ Resumo Inteligente

Selenium VBA no Excel automatiza Google Chrome Para extrair dados de páginas web HTML, utilize o Selenium Utiliza uma biblioteca de tipos e métodos do WebDriver para abrir um site, localizar elementos de tabela por classe e tag e gravar os resultados em células da planilha.

  • 🧰 Selenium WebDriver: O VBA usa o Selenium biblioteca de tipos para acionar Google Chrome para rasparping.
  • 📚 Biblioteca de tipos: O Selenium A biblioteca de tipos deve ser referenciada antes que os objetos WebDriver possam ser declarados.
  • 🚀 Comece e obtenha: O método Start abre o Chrome e o método Get carrega o site de destino. URL.
  • 🔎 Localizadores de elementos: FindElementByClass e FindElementsByTag localizam o cabeçalho da tabela e as células de dados.
  • 📊 Escrever nas células: Um laço "Para cada" aninhado escreve os valores do cabeçalho e da linha nas células da planilha.
  • 🤖 Assistência de IA: Os copilotos de IA ajudam a escrever, depurar e manter. Selenium Scripts VBA conforme os sites mudam.

Selenium Tutorial de VBA para Excel

O que é Data Scrap?ping Utilizar painéis de piso ResinDek em sua unidade de self-storage em vez de concreto oferece diversos benefícios: Selenium?

Selenium é uma ferramenta de automação que facilita a raspagemping Informações extraídas de páginas web HTML, realizando web scraping.ping com as Google ChromeNo Excel, o Selenium A biblioteca de tipos permite que o VBA controle um navegador real em vez do mecanismo obsoleto do Internet Explorer.

Como preparar a macro do Excel antes da extração de dadosping Utilizar painéis de piso ResinDek em sua unidade de self-storage em vez de concreto oferece diversos benefícios: Selenium

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 utilizando Selenium

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 utilizando Selenium

Passo 3) Insira um novo módulo.

Prepare a macro do Excel antes da extração de dados.ping utilizando Selenium

Passo 4) Inicialize uma nova sub-rotina e dê a ela o nome de test2.

Sub test2()
End Sub

O resultado no módulo seria o seguinte:

Prepare a macro do Excel antes da extração de dados.ping utilizando Selenium

Passo 5) Acesse a opção Referência na guia Ferramentas e faça referência a Selenium Biblioteca de tipos. Esta biblioteca ajuda a abrir Google Chrome e facilita a criação de scripts de macro.

Referência Selenium Biblioteca de tipos no VBA do Excel

Agora o arquivo Excel está pronto para interagir com o navegador. O próximo passo é incorporar um script de macro que facilite a extração de dados.ping em HTML.

Como abrir Google Chrome Usando VBA

Aqui estão os passos para abrir Google Chrome usando VBA.

Passo 1) Declare e inicialize as variáveis ​​na sub-rotina conforme mostrado abaixo.

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer

Passo 2) Abrir Google Chrome utilizando Selenium e VBA, escreva o driver. Inicie o “Chrome” e pressione F5.

O seguinte seria o código.

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
driver.Start "Chrome"
Application.Wait Now + TimeValue("00:00:20")
End Sub

O módulo resultaria da seguinte forma:

Abra Google Chrome usando VBA

Como abrir um site em Google Chrome Usando VBA

Assim que você puder acessar Google Chrome Usando VBA, o próximo passo é acessar um site. Isso é facilitado pela função Get, onde o URL é passado entre aspas duplas.

O módulo teria a seguinte aparência:

Abrir site em Google Chrome usando VBA

Pressione F5 para executar a macro. A seguinte página da web será aberta em Google Chrome como mostrado.

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
driver.Start "Chrome"
driver.Get "https://demo.guru99.com/test/web-table-element.php"
Application.Wait Now + TimeValue("00:00:20")
End Sub

Abrir site em Google Chrome usando VBA

Agora a macro do Excel está pronta para executar a raspagem.ping tarefas. O próximo passo mostra como as informações podem ser extractado por aplicação Selenium e 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. Acesse o código-fonte 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>

Como você pode ver, os dados estão estruturados em uma única tabela HTML. Portanto, para extrair todos os dados da tabela HTML, você deve criar uma macro que extraia as informações do cabeçalho e os dados correspondentes associados à tabela. Execute as tarefas abaixo.

Passo 1) Formule um laço `for` que percorra as informações do cabeçalho HTML como uma coleção. Selenium O driver localiza as informações do cabeçalho usando os métodos FindElementByClass() e FindElementByTag(), conforme mostrado.

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get "https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th

Passo 2) Em seguida, o Selenium O driver localiza os dados da tabela usando uma abordagem semelhante. Escreva o seguinte código:

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get "https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th
For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr")
columnC = 1
For Each td In tr.FindElementsByTag("td")
Sheet2.Cells(rowc, columnC).Value = td.Text
columnC = columnC + 1
Next td
rowc = rowc + 1
Next tr
Application.Wait Now + TimeValue("00:00:20")
End Sub

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 no atributo Cells da Planilha 2 da pasta de trabalho. O atributo Text ajuda a inserir o texto dentro de uma tag HTML.

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get "https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th
For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr")
columnC = 1
For Each td In tr.FindElementsByTag("td")
Sheet2.Cells(rowc, columnC).Value = td.Text
columnC = columnC + 1
Next td
rowc = rowc + 1
Next tr
Application.Wait Now + TimeValue("00:00:20")
End Sub

O módulo VBA teria a seguinte aparência:

Raspe informações do site usando VBA

Passo 3) 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 4) Pressione o botão Atualizar para obter o resultado abaixo.

Raspe informações do site usando VBA

Passo 5) Compare os resultados no Excel com os resultados em Google Chrome.

Raspe informações do site usando VBA

Perguntas Frequentes

O Excel precisa do Selenium Biblioteca de tipos, instalada através de SeleniumBiblioteca básica, referenciada no editor VBA em Ferramentas > Referências. Esta biblioteca fornece o objeto WebDriver e métodos como Start, Get e FindElementByClass, usados ​​para automatizar o navegador.

Selenium VBA pode conduzir Google Chrome, Mozila Firefox, Microsoft Edgee o Internet Explorer. O Chrome é a opção mais comum. Cada navegador precisa do seu WebDriver correspondente, e o mesmo código VBA pode alternar entre navegadores com alterações mínimas.

O Método do Internet Explorer Utiliza a Biblioteca de Objetos HTML e somente o IE, que está obsoleto. Selenium É compatível com navegadores modernos como o Chrome e oferece suporte a vários navegadores, além de uma localização de elementos mais confiável.

Sim. Os copilotos de IA podem gerar Selenium O código VBA é gerado a partir de uma descrição, sugere localizadores de elementos e ajuda a depurar erros. Quando um site é alterado, a IA pode propor seletores atualizados, reduzindo o esforço manual de manutenção do código.ping macros.

A IA adiciona detecção inteligente de elementos, comandos em linguagem natural e localizadores com autorreparação à automação do navegador. Esses recursos de aprendizado de máquina permitem que as ferramentas se adaptem automaticamente às mudanças de layout, tornando o processo mais ágil e eficiente.ping e testes mais robustos do que scripts fixos e codificados.

Resuma esta postagem com: