Selenium Учебное пособие по VBA в Excel (для веб-браузера Chrome)ping)
⚡ Умное резюме
Selenium VBA в Excel автоматизирует Google Chrome для извлечения данных с HTML-страниц с помощью Selenium Методы библиотеки типов и WebDriver для открытия сайта, поиска элементов таблицы по классу и тегу и записи результатов в ячейки рабочего листа.

Что такое DataScra?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. Это облегчается функцией 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 готов к выполнению операции скрапинга.ping задачи. На следующем шаге показано, как можно получить эту информацию.tracприменил Selenium и ВБА.
Как извлечь информацию с веб-сайта с помощью VBA
Предположим, трейдер хочет ежедневно получать доступ к данным с веб-сайта. При каждом нажатии кнопки данные о рынке должны автоматически импортироваться в Excel.
На указанном выше веб-сайте необходимо изучить элемент и посмотреть, как структурированы данные. Чтобы получить доступ к исходному коду HTML-кода ниже, нажмите Ctrl + 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.












