VBA Веб Scrapping до Excel
⚡ Розумний підсумок
Веб-скрапping з VBA extracпереносить дані з веб-сторінок HTML безпосередньо в Excel, використовуючи автоматизацію Internet Explorer та Microsoft Бібліотека об'єктів HTML для навігації сайтом, читання таблиці HTML та запису зібраних значень у комірки робочого аркуша.

Що таке скребання данихping?
Видалення данихping це техніка, яка допомагає колишнімtracперенести потрібну інформацію з веб-сторінки HTML до локального файлу на вашому комп’ютері. Зазвичай цей локальний файл — це файл Excel, файл Word або будь-який інший Microsoft Офісна програма. Вона допомагає передавати важливу інформацію з веб-сторінки.
Видалення данихping стає цінним у дослідницькому проекті, який щодня залежить від Інтернету. Для ілюстрації розглянемо денного трейдера, який запускає макрос Excel для отримання ринкової інформації з фінансового веб-сайту в електронну таблицю Excel за допомогою VBA.
Як підготувати макрос Excel перед видаленням данихping (Інтернет Експлорер)
Існують певні попередні умови, які необхідно виконати для файлу макросу Excel перед початком стирання даних.ping процесу.
Ці передумови такі:
Крок 1) Відкрийте макрос на основі Excel та перейдіть до опції "Розробник" в Excel.
Крок 2) Виберіть опцію Visual Basic на стрічці «Розробник».
Крок 3) Вставте новий модуль.
Крок 4) Ініціалізувати нову підпрограму.
Sub test() End Sub
Результат модуля буде наступним:
Крок 5) Відкрийте опцію «Довідка» на вкладці «Інструменти» та зверніться до Microsoft Бібліотека об'єктів HTML і Microsoft Контроль Інтернету.
Наступні файли повинні бути посиланнями на модуль, оскільки вони допомагають відкривати Internet Explorer та полегшують створення макроскриптів.
Тепер файл Excel готовий до взаємодії з Internet Explorer. Наступним кроком є включення макроскриптів, які сприяють скрапінгу даних.ping у HTML.
Як відкрити Internet Explorer за допомогою Excel VBA
Крок 1) Ініціалізуйте змінну в підпрограмі, як показано нижче.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument
Крок 2) Щоб відкрити Internet Explorer за допомогою VBA, напишіть ie.Visible = True та натисніть F5.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument ie.Visible = True
Модуль виглядатиме так:
Як відкрити веб-сайт в Internet Explorer за допомогою VBA
Ось кроки для відкриття веб-сайту в Internet Explorer за допомогою VBA.
Крок 1) Щойно ви зможете отримати доступ до Internet Explorer за допомогою Excel VBA, наступним кроком буде доступ до веб-сайту за допомогою VBA. Це полегшується атрибутом Navigate, де URL передається у вигляді подвійних лапок. Виконайте наведені нижче кроки.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE
Крок 2) Натисніть F5, щоб виконати макрос. Відкриється наступна веб-сторінка, як показано.
Тепер макрос Excel готовий до виконання операції scraping.ping функції. Наступний крок показує, як можна використати інформаціюtracотримано з Internet Explorer за допомогою VBA.
Як зібрати інформацію з веб-сайту за допомогою VBA
Припустимо, що денний трейдер хоче щодня отримувати доступ до даних з веб-сайту. Щоразу, коли денний трейдер натискає кнопку, він повинен автоматично завантажувати ринкові дані в Excel.
З вищезгаданого веб-сайту необхідно оглянути елемент і спостерігати, як структуровані дані.
Крок 1) Щоб отримати доступ до вихідного коду HTML-коду нижче, натисніть Control + Shift + Я.
<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>
Вихідний код буде таким:
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document
Як бачите, дані структуровані як одна HTML-таблиця. Тому, щоб витягти всі дані з HTML-таблиці, потрібно розробити макрос, який збиратиме дані як колекцію.
Потім колекцію вставляється в Excel. Щоб досягти бажаних результатів, виконайте наведені нижче кроки.
Крок 2) Ініціалізуйте HTML-документ у підпрограмі.
Крок 3) Ініціалізуйте елемент колекції, присутній у HTML-документі.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table")
Крок 4) Ініціалізуйте комірки аркуша Excel за допомогою вкладеного циклу, як показано.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table")
Excel можна ініціалізувати за допомогою атрибута Range або атрибута Cells аркуша. Щоб спростити скрипт VBA, дані колекції ініціалізуються атрибутом Cells аркуша 1 у книзі.
Щойно макроскрипт буде готовий, призначте підпрограму кнопці Excel та вийдіть з модуля VBA. Позначте кнопку як «Оновити» або будь-якою іншою відповідною назвою. У цьому прикладі кнопка має назву «Оновити».
Крок 5) Натисніть кнопку «Оновити», щоб отримати результат, як показано нижче.
Крок 6) Порівняйте результати в Excel з результатами в Internet Explorer.











