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

Що таке скребання данихping використання Selenium?
Selenium це інструмент автоматизації, який спрощує скрап-обробкуping інформація з веб-сторінок HTML, виконання веб-скрапінгуping з Google ChromeУ програмі Excel, Selenium Бібліотека типів дозволяє VBA керувати реальним браузером замість застарілого механізму Internet Explorer.
Як підготувати макрос Excel перед видаленням данихping використання Selenium
Існують певні попередні умови, які необхідно виконати для файлу макросу Excel перед початком стирання даних.ping процесу.
Ці передумови такі:
Крок 1) Відкрийте макрос на основі Excel та перейдіть до опції "Розробник" в Excel.
Крок 2) Виберіть опцію Visual Basic на стрічці «Розробник».
Крок 3) Вставте новий модуль.
Крок 4) Ініціалізуйте нову підпрограму та назвіть її test2.
Sub test2() End Sub
Результат у модулі буде таким:
Крок 5) Відкрийте опцію «Довідка» на вкладці «Інструменти» та зверніться до Selenium Бібліотека типів. Ця бібліотека допомагає відкривати Google Chrome та спрощує створення макроскриптів.
Тепер файл 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, наступним кроком є доступ до веб-сайту за допомогою VBA. Це полегшується функцією Get, де URL передається у вигляді подвійних лапок.
Модуль виглядатиме так:
Натисніть 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
Тепер макрос 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 виглядатиме так:
Крок 3) Щойно макроскрипт буде готовий, призначте підпрограму кнопці Excel та вийдіть з модуля VBA. Позначте кнопку як «Оновити» або будь-якою іншою відповідною назвою. У цьому прикладі кнопка має назву «Оновити».
Крок 4) Натисніть кнопку «Оновити», щоб отримати результат, як показано нижче.
Крок 5) Порівняйте результати в Excel з результатами в Google Chrome.












