Selenium Урок за VBA и Excel (Chrome Web Scrap)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 записва стойности на заглавките и редовете в клетките на работния лист.
  • 🤖 AI помощ: Копилотите с изкуствен интелект помагат за писането, отстраняването на грешки и поддръжката Selenium VBA скриптове при промяна на сайтовете.

Selenium Урок за VBA в Excel

Какво е Data Scrapeping Използването на Selenium?

Selenium е инструмент за автоматизация, който улеснява скрапванетоping информация от HTML уеб страници, извършване на уеб scrapingping с 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 е готов да извърши scratch-ването.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 Библиотека с типове, инсталирана чрез SeleniumBasic, цитиран в редактора на VBA под Tools, References. Тази библиотека предоставя обекта WebDriver и методи като Start, Get и FindElementByClass, използвани за автоматизиране на браузъра.

Selenium VBA може да управлява Google Chrome, Mozilla Firefox, Microsoft Edgeи Internet Explorer. Chrome е най-често срещаният избор. Всеки браузър се нуждае от съответстващ WebDriver и един и същ VBA код може да превключва между браузъри с минимални промени.

- Методът на Internet Explorer използва HTML Object Library и само IE, който е остарял. Selenium управлява съвременни браузъри като Chrome и предлага поддръжка за множество браузъри и по-надеждно локализиране на елементи.

Да. Вторите пилоти с изкуствен интелект могат да генерират Selenium VBA код от описание, предлагане на локатори на елементи и помощ за отстраняване на грешки. Когато даден уебсайт се промени, изкуственият интелект може да предложи актуализирани селектори, намалявайки ръчните усилия за поддръжка на scraping макроси.

Изкуственият интелект добавя интелигентно разпознаване на елементи, команди на естествен език и самовъзстановяващи се локатори към автоматизацията на браузъра. Тези функции за машинно обучение позволяват на инструментите да се адаптират автоматично към промените в оформлението, което прави скрапването...ping и тестване, по-устойчиво от фиксирани, твърдо кодирани скриптове.

Обобщете тази публикация с: