Веб-скрапінг за допомогою VBA

Зміст:

Anonim

Що таке скрепінг даних?

Скрепінг даних - це техніка, яка допомагає витягувати потрібну інформацію з веб-сторінки HTML у локальний файл, що присутній у вашому локальному комп'ютері. Зазвичай локальний файл може відповідати файлу Excel, файлу Word або будь-якому додатку Microsoft Office. Це допомагає спрямовувати важливу інформацію з веб-сторінки.

Збір даних стає простим при щоденній роботі над науково-дослідним проектом, і такий проект повністю залежить від Інтернету та веб-сайту. Для подальшої ілюстрації теми, давайте візьмемо приклад денного трейдера, який запускає макрос excel для витягування ринкової інформації з фінансового веб-сайту на лист Excel за допомогою VBA.

У цьому підручнику ви дізнаєтесь:

  • Що таке скрепінг даних?
  • Як підготувати макрос Excel перед тим, як виконувати скрепінг даних за допомогою Internet Explorer?
  • Як відкрити Internet Explorer за допомогою Excel VBA?
  • Як відкрити веб-сайт в Internet Explorer за допомогою VBA?
  • Як зішкребти інформацію з веб-сайту за допомогою VBA?

Як підготувати макрос Excel перед тим, як виконувати скрепінг даних за допомогою Internet Explorer?

Існують певні передумови, які необхідно виконати у файлі макросу excel, перш ніж входити в процес вишкрібання даних у excel.

Ці передумови є такими: -

Крок 1) Відкрийте макрос на основі Excel і отримайте доступ до опції розробника Excel.

Крок 2) Виберіть параметр Visual Basic під стрічкою розробника.

Крок 3) Вставте новий модуль.

Крок 4) Ініціалізуйте нову підпрограму

Sub test()End sub

Результат модуля буде таким:

Крок 5) Перейдіть до опції посилання на вкладці інструменту та перейдіть до бібліотеки об’єктів Microsoft HTML та керування Інтернетом Microsoft.

На наступні файли слід посилатись на модуль, оскільки він допомагає у відкритті Internet Explorer і полегшує розробку макроскриптів.

Тепер файл Excel готовий до взаємодії з Internet Explorer. Наступним кроком було б включення макроскриптів, які полегшили б збір даних у HTML.

Як відкрити Internet Explorer за допомогою Excel VBA?

Крок 1) Ініціалізуйте змінну в підпрограмах, як показано нижче

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocument

Крок 2) Щоб відкрити Internet Explorer за допомогою VBA, напишіть ie visible = true та натисніть F5.

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentIe.visible=true

Модуль буде виглядати наступним чином: -

Як відкрити веб-сайт в Internet Explorer за допомогою VBA?

Ось кроки для відкриття веб-сайту в Internet Explorer за допомогою VBA

Крок 1) Після того, як ви зможете отримати доступ до Internet Explorer за допомогою Excel VBA, наступний крок включатиме доступ до веб-сайту за допомогою VBA. Цьому сприяє навігаційний атрибут, при якому URL-адреса повинна передаватися як подвійні лапки в атрибуті. Виконайте такі дії, як показано.

Sub test()Dim, ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate"http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETE

Крок 2) - Натисніть F5, щоб виконати макрос. Наступну веб-сторінку буде відкрито, як показано

Тепер макрос excel готовий щодо виконання функцій зішкрябування. Наступним кроком буде показано, як інформацію можна отримати з Internet Explorer за допомогою VBA.

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

Припустимо, що день трейдер хоче отримувати доступ до даних веб-сайту щодня. Кожного разу, коли трейдер натискає кнопку, він повинен автоматично перетягувати ринкові дані в Excel.

З вищезазначеного веб-сайту потрібно було б перевірити елемент та спостерігати за структурою даних.

Крок 1) Перейдіть до наведеного нижче вихідного коду HTML, натиснувши control + Shift + I

Вихідний код буде таким:

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.document

Як видно, дані структуровані як одна таблиця HTML. Тому, щоб витягти цілі дані з таблиці html, потрібно буде розробити макрос, який збирає дані у формі колекції.

Потім колекція буде вставлена ​​в Excel. Для досягнення бажаних результатів виконайте згадані нижче кроки: -

Крок 2) Ініціалізуйте документ Html у підпрограмі

Модуль VBA буде виглядати наступним чином: -

Крок 3) Ініціалізуйте елемент колекції, присутній у документі HTML

Модуль VBA буде виглядати наступним чином: -

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.documentSet ecoll = doc.getElementsByTagName("table")

Крок 4) Ініціалізуйте комірки аркуша Excel за допомогою вкладеного циклу, як показано

Модуль VBA буде виглядати наступним чином: -

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.documentSet ecoll = doc.getElementsByTagName("table")

Excel можна ініціалізувати за допомогою атрибута діапазону аркуша Excel або через атрибут комірок аркуша Excel. Щоб зменшити складність сценарію VBA, дані колекції ініціалізуються до атрибута комірок excel аркуша 1, присутнього в книзі.

Як тільки скрипт макроконтролю буде готовий, передайте та призначте підпрограму кнопці excel та вийдіть з модуля VBA. Позначте кнопку як оновлення або будь-яке відповідне ім'я, яке може бути ініціалізоване до неї. У цьому прикладі кнопка ініціалізується як оновлення.

Крок 5) Натисніть кнопку оновлення, щоб отримати згаданий результат

Крок 6) Порівняйте результати в Excel з результатами Internet Explorer

Короткий зміст:

  • Скрепінг даних дозволяє користувачеві викреслити лише ту інформацію, яку він бажає.
  • Вишкрібання можна виконати за допомогою Internet Explorer.
  • У випадку з Internet Explorer процес вишкрібання відбувається повільніше; однак він забезпечує бажані результати для користувача.
  • Вишкрібання слід проводити з максимальною обережністю та обережністю, оскільки це може завдати шкоди та призвести до збою в системі, що використовується для вишкрібання.
CompanyGroupPre Close (Rs)Current Price (Rs)% Change