VBA Веб Scrapping до Excel

⚡ Розумний підсумок

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

  • 🧰 Автоматизація VBA: VBA керує Internet Explorer з Excel для завантаження веб-сторінки та зчитування її HTML.
  • 📚 Необхідні посилання: Microsoft Бібліотека об'єктів HTML і Microsoft У проекті має бути посилання на елементи керування Інтернетом.
  • 🌐 Метод навігації: Метод Navigate відкриває ціль URL, а код чекає, поки сторінка буде готова.
  • 🧱 Розбір HTML-таблиці: Метод getElementsByTagName зчитує таблицю, щоб її рядки та комірки можна було перебирати в циклі.
  • 📊 Записати в комірки: Зібрані значення записуються в комірки робочого аркуша, часто за кнопкою «Оновити».
  • 🤖 Допомога AI: Інструменти штучного інтелекту та інші пілоти тепер генерують скрапбукінги.ping кодуйте та адаптуйте селектори при зміні макета.

VBA Веб Scrapping до Excel

Що таке скребання данихping?

Видалення данихping це техніка, яка допомагає колишнімtracперенести потрібну інформацію з веб-сторінки HTML до локального файлу на вашому комп’ютері. Зазвичай цей локальний файл — це файл Excel, файл Word або будь-який інший Microsoft Офісна програма. Вона допомагає передавати важливу інформацію з веб-сторінки.

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

Як підготувати макрос Excel перед видаленням данихping (Інтернет Експлорер)

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

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

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

Підготовка макросу Excel перед видаленням данихping використання Internet Explorer

Крок 2) Виберіть опцію Visual Basic на стрічці «Розробник».

Підготовка макросу Excel перед видаленням данихping використання Internet Explorer

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

Підготовка макросу Excel перед видаленням данихping використання Internet Explorer

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

Sub test()
End Sub

Результат модуля буде наступним:

Підготовка макросу Excel перед видаленням данихping використання Internet Explorer

Крок 5) Відкрийте опцію «Довідка» на вкладці «Інструменти» та зверніться до Microsoft Бібліотека об'єктів HTML і Microsoft Контроль Інтернету.

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

Посилання Microsoft Бібліотека об'єктів HTML та елементи керування Інтернетом

Тепер файл 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 за допомогою Excel VBA

Відкрийте Internet Explorer за допомогою Excel VBA

Як відкрити веб-сайт в 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, щоб виконати макрос. Відкриється наступна веб-сторінка, як показано.

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

Тепер макрос 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. Позначте кнопку як «Оновити» або будь-якою іншою відповідною назвою. У цьому прикладі кнопка має назву «Оновити».

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

Крок 5) Натисніть кнопку «Оновити», щоб отримати результат, як показано нижче.

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

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

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

Поширені запитання

У редакторі VBA в меню Інструменти, Посилання потрібні два посилання: Microsoft Бібліотека об'єктів HTML і Microsoft Елементи керування Інтернетом. Вони дозволяють VBA відкривати Internet Explorer, переходити до URL, та зчитати HTML-елементи сторінки.

Це залежить від веб-сайту. Багато сайтів обмежують автоматичне скрейпінгування.ping в їхніх умовах обслуговування, тому спочатку ознайомтеся з ними та уникайте збору особистих даних або даних, захищених авторським правом. Scraping публічні, дозволені дані для персонального аналізу, як правило, становлять менший ризик.

Internet Explorer застарів, тому сучасні проекти використовують Selenium VBA підхід, який керує Chrome, Firefoxабо Edge. Selenium пропонує підтримку кількох браузерів та надійніше розташування елементів для поточних вебсайтів.

Так. Скрепери та копілоти на базі штучного інтелекту можуть ідентифікувати поля даних, генеруватиtracкод та автоматично адаптуються до змін макета. Моделі машинного навчання також аналізують неструктуровані сторінки, зменшуючи ручні зусилля на написання та підтримку коду.ping скриптів.

Штучний інтелект використовує комп'ютерний зір та обробку природної мови для розпізнавання таблиць, цін і тексту на сторінці, навіть без фіксованих селекторів. Цей інтелектуальний...tracробить подряпиниping більш стійким, коли веб-сайт змінює свою структуру.

Підсумуйте цей пост за допомогою: