VBA Web Scraping - Como eliminar sites usando o Excel VBA?

Excel VBA Web Scraping

VBA Web Scraping é uma técnica de acessar páginas da web e fazer o download dos dados desse site para os arquivos do nosso computador. O scraping da Web é possível acessando aplicativos externos como o Internet Explorer. Podemos fazer isso de duas maneiras, ou seja, Early Binding e Late Binding.

Web Scraping com VBA significa que quando usamos o VBA para buscar os dados de outras fontes na web, isso pode exigir logins para as fontes de dados, mas primeiro, para fazer isso, precisamos habilitar as referências da seção de ferramentas em o editor VBA da biblioteca HTML da Microsoft para acessar a web a partir do VBA.

Muitos de nós não sabem que, a partir do Excel, podemos acessar as páginas da web e obter os dados dessas páginas. Sim, você ouviu direito. podemos vasculhar páginas da web, acessar aplicativos de navegação e muito mais. Neste artigo, mostraremos como escrever um código VBA do Excel para web scraping em detalhes.

Normalmente, abrimos as páginas da web, copiamos os dados e os colamos em nossos arquivos como Excel, Word ou alguns outros arquivos. Mas, neste artigo, mostraremos como acessar sites do Excel e fazer muitos outros tipos de coisas.

Como eliminar dados de sites usando o VBA?

Quando queremos acessar qualquer outro aplicativo do Excel, podemos fazer isso de maneiras, ou seja, “Early Binding” e “Late Binding”. No estágio de iniciante, é sempre seguro usar a técnica de “Early Binding”.

Para acessar o site, precisamos de aplicativos de navegação, por exemplo, “ Internet Explorer ”. Uma vez que é um objeto externo, precisamos primeiro definir a referência.

Siga as etapas abaixo para fazer um scrap na web.

Etapa 1: defina a variável VBA e atribua o tipo de dados como “ Internet Explorer ”.

Código:

Sub Web_Scraping () Dim Internet_Explorer As internet End Sub

Como você pode ver acima, quando tentamos definir a referência para o Internet Explorer, não conseguimos ver “Internet Explorer”, isso porque o “Internet Explorer” é um objeto externo, portanto, precisamos definir a referência.

Etapa 2: Para definir a referência, vá para “ Ferramentas ” e escolha “ Referências ”.

Na janela abaixo, role para baixo e escolha “ Microsoft Internet Controls ”.

Etapa 3: Marque a caixa “Microsoft Internet Controls” e clique em OK. Agora devemos ver esse nome de objeto na lista do IntelliSense.

Código:

Sub Web_Scraping () Dim Internet_Explorer As inter End Sub

Etapa 4: Escolha “InternetExplorer”.

Código:

Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer End Sub

Etapa 5: Em seguida, precisamos definir a referência para habilitar o Internet Explorer. Por ser uma variável de objeto, precisamos usar a palavra-chave “ Set ” para definir as referências.

Código:

Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = Novo InternetExplorer End Sub

Passo 6: Agora, usando a variável “ Internet_Explorer ”, podemos usar as propriedades e métodos do Internet Explorer.

Insira o nome da variável e coloque um ponto para ver a lista do IntelliSense.

Código:

Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = Novo InternetExplorer Internet_Explorer. End Sub

Passo 7: Agora, para visualizar o aplicativo internet explorer, precisamos escolher a propriedade “ Visible ” e definir o status como “ True ”.

Código:

Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = Novo InternetExplorer Internet_Explorer.Visible = True End Sub

Agora execute o código e você verá um Internet Explorer abrir no seu computador.

Etapa 8: Como nenhum endereço da web foi mencionado, podemos ver apenas uma página em branco. Para fornecer o endereço da web ao Internet Explorer, precisamos do método “ Navegação ”.

Código:

Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = Novo InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate (End Sub

Step 9: As you can see above “Navigation” method asking which URL to be navigated in internet explorer. Now I need to open the website “Wallstreetnmojo,” and I can give the URL address as follows. “https://www.wallstreetmojo.com/”

Code:

Sub Web_Scraping() Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("https://www.wallstreetmojo.com") End Sub

Now run the code, we should see the mentioned web address page in internet explorer.

Here we have a problem that once the web page is opened, our code needs to wait until the page web page fully opened.

Step 10: We need to use the “Do While” loop in VBA to actually wait for our code to go any further until the mentioned page is fully loaded.

So, add below the “Do While” loop to force the macro to wait until the mentioned web page comes to the “Ready State Complete” mode.

Code:

Sub Web_Scraping() Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("https://www.wallstreetmojo.com") Do While Internet_Explorer.ReadyState READYSTATE_COMPLETE: Loop End Sub

Step 11: Now, let’s try to get information about the website in a single line. To get the information about the mentioned web address information, we need to use the “Location Name” property.

Code:

Sub Web_Scraping() Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("https://www.wallstreetmojo.com") Do While Internet_Explorer.ReadyState READYSTATE_COMPLETE: Loop MsgBox Internet_Explorer.LocationName End Sub

Run the code, and in the message box, we would get the information about the website.

Step 12: Now, at the bottom, we can also print website addresses as well.

Code:

Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = Novo InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("https://www.wallstreetmojo.com") Faça Enquanto Internet_Explorer.ReadyState READYSTATE_COMExplorer.NavigateNavigate & Internet_Explorer.LocationURL End Sub

Agora, isso contará sobre a descrição do site e também mostrará o endereço do site.

Coisas para lembrar aqui

  • A coleta da Web é possível acessando aplicativos externos como o Internet Explorer.
  • Podemos fazer isso de duas maneiras, ou seja, Early Binding e Late Binding. Com a vinculação antecipada, podemos ver a lista do IntelliSense, mas com a vinculação tardia, não podemos ver a lista do IntelliSense.

Artigos interessantes...