Selenium Підручник з VBA та Excel (Chrome Web Scrap)ping)

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

Selenium VBA в Excel автоматизує Google Chrome для збору даних з веб-сторінок HTML за допомогою Selenium бібліотека типів та методи WebDriver для відкриття сайту, пошуку елементів таблиці за класом та тегом, а також запису результатів у комірки робочого аркуша.

  • 🧰 Selenium WebDriver: VBA використовує Selenium бібліотека типів для керування Google Chrome для подряпинping.
  • 📚 Бібліотека типів: Команда Selenium Перш ніж можна буде оголосити об'єкти WebDriver, необхідно звернутися до бібліотеки типів.
  • ???? Почніть та отримайте: Метод Start відкриває Chrome, а метод Get завантажує цільовий веб-сайт URL.
  • 🔎 Локатори елементів: Функції FindElementByClass та FindElementsByTag знаходять заголовок таблиці та комірки даних.
  • 📊 Записати в комірки: Вкладений цикл For Each записує значення заголовків та рядків у комірки робочого аркуша.
  • 🤖 Допомога AI: Копілоти зі штучним інтелектом допомагають писати, налагоджувати та підтримувати Selenium Скрипти VBA під час зміни сайтів.

Selenium Підручник з VBA та Excel

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

Selenium це інструмент автоматизації, який спрощує скрап-обробкуping інформація з веб-сторінок HTML, виконання веб-скрапінгуping з Google ChromeУ програмі Excel, Selenium Бібліотека типів дозволяє VBA керувати реальним браузером замість застарілого механізму Internet Explorer.

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

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

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

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

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

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

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

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

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

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

Sub test2()
End Sub

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

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

Крок 5) Відкрийте опцію «Довідка» на вкладці «Інструменти» та зверніться до Selenium Бібліотека типів. Ця бібліотека допомагає відкривати Google Chrome та спрощує створення макроскриптів.

Посилання Selenium Бібліотека типів в Excel VBA

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

Як відкрити Google Chrome Використання VBA

Ось кроки для відкриття Google Chrome за допомогою VBA.

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

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer

Крок 2) Відкривати Google Chrome використання Selenium і VBA, напишіть драйвер. Запустіть «Chrome» та натисніть F5.

Наступним буде код.

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
driver.Start "Chrome"
Application.Wait Now + TimeValue("00:00:20")
End Sub

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

відкритий Google Chrome за допомогою VBA

Як відкрити вебсайт у Google Chrome Використання VBA

Як тільки ви отримаєте доступ Google Chrome використовуючи VBA, наступним кроком є ​​доступ до веб-сайту за допомогою VBA. Це полегшується функцією Get, де URL передається у вигляді подвійних лапок.

Модуль виглядатиме так:

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

Натисніть F5, щоб виконати макрос. Відкриється наступна веб-сторінка. Google Chrome як показано.

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
driver.Start "Chrome"
driver.Get "https://demo.guru99.com/test/web-table-element.php"
Application.Wait Now + TimeValue("00:00:20")
End Sub

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

Тепер макрос Excel готовий до виконання операції scraping.ping завдання. Наступний крок показує, як можна використати інформаціюtracшляхом застосування Selenium та VBA.

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

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

На вищезгаданому веб-сайті необхідно перевірити елемент і поспостерігати за структурою даних. Щоб отримати доступ до вихідного коду 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>

Як бачите, дані структуровані як одна HTML-таблиця. Тому, щоб витягнути всі дані з HTML-таблиці, потрібно розробити макрос, який витягує інформацію заголовка та відповідні дані, пов'язані з таблицею. Виконайте наведені нижче завдання.

Крок 1) Сформулюйте цикл For, який проходить через інформацію заголовка HTML як колекцію. Selenium Драйвер знаходить інформацію заголовка за допомогою методів FindElementByClass() та FindElementByTag(), як показано.

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get "https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th

Крок 2) Далі, в Selenium Драйвер знаходить дані таблиці, використовуючи аналогічний підхід. Напишіть наступний код:

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get "https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th
For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr")
columnC = 1
For Each td In tr.FindElementsByTag("td")
Sheet2.Cells(rowc, columnC).Value = td.Text
columnC = columnC + 1
Next td
rowc = rowc + 1
Next tr
Application.Wait Now + TimeValue("00:00:20")
End Sub

Excel можна ініціалізувати за допомогою атрибута Range або атрибута Cells аркуша. Щоб спростити скрипт VBA, дані колекції ініціалізуються атрибутом Cells аркуша 2 у книзі. Атрибут Text допомагає розмістити текст під тегом HTML.

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get "https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th
For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr")
columnC = 1
For Each td In tr.FindElementsByTag("td")
Sheet2.Cells(rowc, columnC).Value = td.Text
columnC = columnC + 1
Next td
rowc = rowc + 1
Next tr
Application.Wait Now + TimeValue("00:00:20")
End Sub

Модуль VBA виглядатиме так:

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

Крок 3) Щойно макроскрипт буде готовий, призначте підпрограму кнопці Excel та вийдіть з модуля VBA. Позначте кнопку як «Оновити» або будь-якою іншою відповідною назвою. У цьому прикладі кнопка має назву «Оновити».

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

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

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

Крок 5) Порівняйте результати в Excel з результатами в Google Chrome.

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

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

Excel потребує Selenium Бібліотека типів, встановлена ​​через SeleniumБазова, посилання на яку можна знайти в редакторі VBA в розділі Інструменти, Посилання. Ця бібліотека надає об'єкт WebDriver та методи, такі як Start, Get та FindElementByClass, що використовуються для автоматизації браузера.

Selenium VBA може керувати Google Chrome, Mozilla Firefox, Microsoft Edgeта Internet Explorer. Chrome є найпоширенішим вибором. Кожному браузеру потрібен відповідний WebDriver, і той самий код VBA може перемикатися між браузерами з мінімальними змінами.

Команда Метод Internet Explorer використовує бібліотеку об'єктів HTML та лише IE, який є застарілим. Selenium працює з сучасними браузерами, такими як Chrome, та пропонує підтримку кількох браузерів і надійніше розташування елементів.

Так. Штучний інтелект може генерувати Selenium Код VBA з опису, пропонувати локатори елементів та допомагати усунути помилки. Коли веб-сайт змінюється, штучний інтелект може пропонувати оновлені селектори, зменшуючи ручні зусилля на підтримку scraping макроси.

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

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