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.

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.
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 e dê a ela o nome de test2.
Sub test2() End Sub
O resultado no módulo seria o seguinte:
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.
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:
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:
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
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:
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".
Passo 4) Pressione o botão Atualizar para obter o resultado abaixo.
Passo 5) Compare os resultados no Excel com os resultados em Google Chrome.












