VBA Web Scraping | Как да премахнем уебсайтове с помощта на Excel VBA?

Excel VBA Web Scraping

VBA Web Scraping е техника за достъп до уеб страници и изтегляне на данните от този уебсайт в нашите компютърни файлове. Уеб изстъргването е възможно чрез достъп до външни приложения като Internet Explorer. Можем да го направим по два начина, т.е. Ранно подвързване и Късно подвързване.

Уеб изстъргването с VBA означава, че когато използваме VBA за извличане на данни от други източници в мрежата, това може да изисква влизания за източниците на данни, но първо, за да го направим, трябва да активираме препратките от раздела с инструменти в редактора на VBA за библиотеката на Microsoft HTML с цел достъп до мрежата от VBA.

Не много от нас знаят, че от Excel можем да осъществим достъп до уеб страниците и да получим данните от тях. Да, добре сте го чули. можем да претърсваме уеб страници, да имаме достъп до приложения за сърфиране и много други. В тази статия ще ви покажем как да напишете подробно код на excel VBA за уеб изстъргване.

Обикновено отваряме уеб страниците, копираме данните и ги поставяме в нашите файлове като Excel, Word или някои други файлове. Но в тази статия ще ви покажем как да получите достъп до уебсайтове от Excel и да правите много други видове неща.

Как да премахнем данните на уебсайта с помощта на VBA?

Можете да изтеглите този шаблон на VBA за изстъргване на Excel тук - VBA шаблон за изрязване на уеб в Excel

Когато искаме да получим достъп до други приложения от Excel, можем да направим това по начини, т.е. „Ранно обвързване“ и „Късно обвързване“. На етапа за начинаещи винаги е безопасно да се използва техниката „Ранно подвързване“.

За достъп до уебсайта ни трябват приложения за сърфиране, например „ Internet Explorer “. Тъй като това е външен обект, първо трябва да зададем референцията.

Следвайте стъпките по-долу за уеб скрап.

Стъпка 1: Дефинирайте променливата VBA и задайте типа данни като „ Internet Explorer “.

Код:

 Sub Web_Scraping () Dim Internet_Explorer Като интернет End Sub 

Както можете да видите по-горе, когато се опитваме да зададем препратката към Internet Explorer, не виждаме „Internet Explorer“, това е така, защото „Internet Explorer“ е външен обект, така че трябва да зададем препратката.

Стъпка 2: За да зададете референцията, отидете на „ Инструменти “ и изберете „ Референции “.

В прозореца по-долу превъртете надолу и изберете „ Microsoft Internet Controls “.

Стъпка 3: Поставете отметка в квадратчето „Microsoft Internet Controls“ и кликнете върху Ok. Сега трябва да видим името на този обект в списъка IntelliSense.

Код:

 Sub Web_Scraping () Dim Internet_Explorer Като междукрайна Sub 

Стъпка 4: Изберете „InternetExplorer“.

Код:

 Sub Web_Scraping () Dim Internet_Explorer Като InternetExplorer End Sub 

Стъпка 5: След това трябва да зададем препратката, за да активираме Internet Explorer. Тъй като това е обектна променлива, трябва да използваме ключовата дума „ Set “, за да зададем препратките.

Код:

 Sub Web_Scraping () Dim Internet_Explorer като InternetExplorer Set Internet_Explorer = New InternetExplorer End Sub 

Стъпка 6: Сега, използвайки променливата „ Internet_Explorer “, можем да използваме свойствата и методите на Internet Explorer.

Въведете името на променливата и поставете точка, за да видите списъка IntelliSense.

Код:

Sub Web_Scraping () Dim Internet_Explorer като InternetExplorer Задайте Internet_Explorer = Нов InternetExplorer Internet_Explorer. Крайна под

Стъпка 7: Сега, за да разгледаме приложението Internet Explorer, трябва да изберем свойството „ Visible “ и да зададем състоянието като „ True “.

Код:

 Sub Web_Scraping () Dim Internet_Explorer като InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True End Sub 

Сега стартирайте кода и ще видите, че на компютъра ви се отваря Internet Explorer .

Стъпка 8: Тъй като не е споменат уеб адрес, можем да видим само празна страница. За да дадем уеб адреса на Internet Explorer, трябва да използваме метода „ Навигация “.

Код:

 Sub Web_Scraping () Dim Internet_Explorer като InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate (End Sub 

Стъпка 9: Както можете да видите по-горе метод „Навигация“, който пита кой URL да се навигира в Internet Explorer. Сега трябва да отворя уебсайта „ Wallstreetnmojo “ и мога да дам URL адреса, както следва. „//Www.wallstreetmojo.com/“

Код:

 Sub Web_Scraping() Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("//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 ("//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 ("//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 = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("//www.wallstreetmojo.com") Do While Internet_Explorer.ReadyState  READYSTATE_COMPLETE: Loop MsgBox Internet_Explorer.LocationName & vbNewLine & vbNewLine & Internet_Explorer.LocationURL End Sub 

Now this will tell about the website description and also shows the website address as well.

Things to Remember here

  • Web scraping is possible by accessing external applications like Internet Explorer.
  • We can do it in two ways i.e. Early Binding & Late Binding. With Early Binding, we can get to see the IntelliSense list but with late binding, we cannot get to see the IntelliSense list at all.