Selenium Учебное пособие по VBA в Excel (для веб-браузера Chrome)ping)

⚡ Умное резюме

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

  • 🧰 Selenium Вебдрайвер: VBA использует Selenium тип библиотеки для управления Google Chrome для скраping.
  • 📚 Библиотека типов: Selenium Перед объявлением объектов WebDriver необходимо подключить библиотеку типов.
  • 🚀 Начните и получите: Метод Start открывает Chrome, а метод Get загружает целевой веб-сайт. URL.
  • 🔎 Локаторы элементов: Функции FindElementByClass и FindElementsByTag определяют заголовок таблицы и ячейки с данными.
  • 📊 Запись в ячейки: Вложенный цикл For Each записывает значения заголовка и строк в ячейки рабочего листа.
  • 🤖 Помощь ИИ: Искусственный интеллект в роли второго пилота помогает в написании кода, отладке и обслуживании программного обеспечения. Selenium VBA-скрипты по мере изменения сайтов.

Selenium Учебное пособие по VBA в Excel

Что такое DataScra?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. Это облегчается функцией 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 готов к выполнению операции скрапинга.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 будет выглядеть следующим образом:

Очистить информацию с веб-сайта с помощью VBA

Шаг 3) После того, как макрос будет готов, назначьте подпрограмму кнопке Excel и выйдите из модуля VBA. Присвойте кнопке название «Обновить» или любое другое подходящее имя. В этом примере кнопка называется «Обновить».

Очистить информацию с веб-сайта с помощью VBA

Шаг 4) Нажмите кнопку «Обновить», чтобы получить результат, показанный ниже.

Очистить информацию с веб-сайта с помощью VBA

Шаг 5) Сравните результаты в Excel с результатами в Google Chrome.

Очистить информацию с веб-сайта с помощью VBA

Часто задаваемые вопросы (FAQ)

Excel нуждается в Selenium Библиотека типов, установленная через SeleniumБиблиотека Basic, ссылка на которую есть в редакторе VBA в разделе «Инструменты», «Ссылки». Эта библиотека предоставляет объект WebDriver и такие методы, как Start, Get и FindElementByClass, используемые для автоматизации работы браузера.

Selenium VBA может управлять Google ChromeМозилла Firefox, Microsoft Edgeи Internet Explorer. Chrome — наиболее распространенный выбор. Каждому браузеру нужен соответствующий WebDriver, и один и тот же код VBA может переключаться между браузерами с минимальными изменениями.

Метод Internet Explorer Использует библиотеку HTML Object Library и только в Internet Explorer, который устарел. Selenium поддерживает современные браузеры, такие как Chrome, и обеспечивает поддержку нескольких браузеров, а также более надежное определение местоположения элементов.

Да. ИИ-вторые пилоты могут генерировать Selenium VBA-код на основе описания может предлагать локаторы элементов и помогать в отладке ошибок. При изменении веб-сайта ИИ может предлагать обновленные селекторы, сокращая ручные усилия по поддержке скрапинга.ping макросы.

Искусственный интеллект добавляет в автоматизацию браузера интеллектуальное распознавание элементов, команды на естественном языке и самовосстанавливающиеся локаторы. Эти функции машинного обучения позволяют инструментам автоматически адаптироваться к изменениям макета, упрощая поиск и ввод данных.ping и тестирование более устойчиво, чем фиксированные, жестко закодированные скрипты.

Подведем итог этой публикации следующим образом: