Веб-скрапінг VBA | Як видалити веб-сайти за допомогою програми Excel VBA?

Веб-скрапінг Excel VBA

Веб-скрапінг VBA - це техніка доступу до веб-сторінок та завантаження даних із цього веб-сайту у файли нашого комп’ютера. Веб-скрапінг можливий завдяки доступу до зовнішніх програм, таких як Internet Explorer. Ми можемо зробити це двома способами, тобто достроковим і пізнім прив’язуванням.

Веб-скрепінг за допомогою VBA означає, що коли ми використовуємо VBA для отримання даних з інших джерел в Інтернеті, це може вимагати входу для джерел даних, але спочатку для цього нам потрібно включити посилання з розділу інструментів у редактор VBA для бібліотеки Microsoft HTML для доступу до Інтернету з VBA.

Не багато хто з нас знає, що з програми Excel ми можемо отримувати доступ до веб-сторінок і отримувати дані з цих веб-сторінок. Так, ви чули це правильно. ми можемо переглядати веб-сторінки, отримувати доступ до програм перегляду та багатьох інших. У цій статті ми покажемо вам, як детально написати код Excel VBA для веб-скрапінгу.

Зазвичай ми відкриваємо веб-сторінки, копіюємо дані та вставляємо їх у наші файли, такі як Excel, Word або деякі інші файли. Але в цій статті ми покажемо вам, як отримати доступ до веб-сайтів з програми Excel та робити багато інших видів речей.

Як видалити дані веб-сайту за допомогою VBA?

Завантажити цей шаблон VBA для веб-скребування Excel можна тут - Шаблон Excel для веб-скрапінгу

Коли ми хочемо отримати доступ до будь-яких інших програм з Excel, ми можемо зробити це такими способами, як "Рання прив'язка" та "Пізня прив'язка". На початковому етапі завжди безпечно використовувати техніку “Раннє прив’язування”.

Для доступу до веб-сайту нам потрібні програми для перегляду, наприклад, “ Internet Explorer ”. Оскільки це зовнішній об'єкт, нам потрібно спочатку встановити посилання.

Виконайте наведені нижче дії для веб-записів.

Крок 1: Визначте змінну VBA та призначте тип даних як “ Internet Explorer ”.

Код:

 Sub Web_Scraping () Невиразний Internet_Explorer Як Інтернет Кінець Sub 

Як ви можете бачити вище, коли ми намагаємося встановити посилання на Internet Explorer, ми не бачимо "Internet Explorer", це тому, що "Internet Explorer" є зовнішнім об'єктом, тому нам потрібно встановити посилання.

Крок 2: Щоб встановити посилання, перейдіть до « Інструменти » та виберіть « Посилання ».

У нижньому вікні прокрутіть вниз і виберіть “ Інтернет-контроль Microsoft ”.

Крок 3: Поставте прапорець біля пункту “Інтернет-контролери Microsoft” і натисніть кнопку Ok. Тепер ми повинні побачити це ім'я об'єкта в списку IntelliSense.

Код:

 Sub Web_Scraping () Dim Internet_Explorer Як міжкінцевий Sub 

Крок 4: Виберіть “InternetExplorer”.

Код:

 Sub Web_Scraping () Затемнити Internet_Explorer Як InternetExplorer Кінець Sub 

Крок 5: Далі нам потрібно встановити посилання, щоб увімкнути Internet Explorer. Оскільки це об’єктна змінна, нам потрібно використовувати ключове слово “ Set ” для встановлення посилань.

Код:

 Sub Web_Scraping () Затемнити Internet_Explorer Як InternetExplorer Встановити Internet_Explorer = Новий InternetExplorer Кінець Sub 

Крок 6: Тепер, використовуючи змінну “ Internet_Explorer ”, ми можемо використовувати властивості та методи Internet Explorer.

Введіть ім'я змінної та поставте крапку, щоб побачити список IntelliSense.

Код:

Sub Web_Scraping () Затемнити Internet_Explorer Як InternetExplorer Встановити Internet_Explorer = Новий InternetExplorer Internet_Explorer. Кінець Sub

Крок 7: Тепер, щоб переглянути програму Internet Explorer, нам потрібно вибрати властивість « Visible » та встановити статус « True ».

Код:

 Sub Web_Scraping () Вимкнути Internet_Explorer як InternetExplorer Встановити Internet_Explorer = Новий InternetExplorer Internet_Explorer.Visible = True End Sub 

Тепер запустіть код, і ви побачите, як на вашому комп’ютері відкривається Internet Explorer .

Крок 8: Оскільки жодна веб-адреса не була згадана, ми можемо бачити лише порожню сторінку. Для надання веб-адреси Інтернет-провіднику нам потрібен метод « Навігація ».

Код:

 Sub Web_Scraping () Затемнити Internet_Explorer як InternetExplorer Встановити Internet_Explorer = Новий InternetExplorer Internet_Explorer.Visible = Правда Internet_Explorer.Navigate (Кінець 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.