Selenium Урок за VBA и Excel: Chrome Web Scratchping Пример

Какво е Data Scrapeping използвайки селен?

Selenium може да се класифицира като инструмент за автоматизация, който улеснява скрапванетоping на информация от HTML уеб страниците за извършване на уеб scrapingping използвайки Google Chrome.

Как да подготвите макрос в Excel преди да извършите изтриване на данниping използвайки Selenium?

Има определени предварителни изисквания, които трябва да бъдат изпълнени върху макро файла на Excel, преди да се започне процесът на изтриване на данни.ping в ексел.

Тези предпоставки са както следва: –

Стъпка 1) Отворете базиран на Excel макрос и отворете опцията за разработчици на excel.

Подгответе макроса на Excel, преди да извършите изтриване на данниping

Стъпка 2) Изберете опцията Visual Basic под лентата за програмисти.

Подгответе макроса на Excel, преди да извършите изтриване на данниping

Стъпка 3) Поставете нов модул.

Подгответе макроса на Excel, преди да извършите изтриване на данниping

Стъпка 4) Инициализирайте нова подпрограма и я наименувайте като test2.

Sub test2()
End sub

Резултатите в модула ще бъдат следните: –

Подгответе макроса на Excel, преди да извършите изтриване на данниping

Стъпка 5) Осъществете достъп до опцията за справка под раздела с инструменти и справка Selenium библиотека с типове. Следните библиотеки трябва да бъдат препратени към модула, тъй като той помага при отварянето на Google Chrome и улеснява разработването на макро скриптове.

Подгответе макроса на Excel, преди да извършите изтриване на данниping

Сега Excel файлът е готов за взаимодействие с Internet Explorer. Следващите стъпки ще бъдат включване на макроскрипт, който ще улесни изтриването на данни.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 с помощта на селен и VBA, напишете driver.start „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чрез прилагане на селен и VBA.

Как да изтриете информация от уебсайт с помощта на VBA?

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

От горния уебсайт би било необходимо да се провери елемент и да се наблюдава как са структурирани данните. Достъп до изходния код на HTML по-долу, като натиснете control + Shift + I

<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 таблицата, ще е необходимо проектиране на макрос, който изтегля информацията от заглавката на HTML таблицата и съответните данни, свързани с таблицата. Изпълнете следните задачи, както е показано: –

Стъпка 1) Формулирайте for цикъл, който преминава през информацията на HTML заглавката като колекция. Драйверът на селен трябва да намери информацията за заглавката на HTML таблицата. За да направим това, ние използваме метода FindElementByClass() и FindElementByTag(), за да изпълним задачата, както е показано

VBA модулът ще изглежда по следния начин: –

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) След това драйверът на селен ще намери данните от таблицата, използвайки подобен подход, както беше споменато по-горе. Трябва да напишете следния код: –

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 ще изглежда по следния начин: –

Екселът може да се инициализира чрез атрибута Range на листа на Excel или чрез атрибута клетки на листа на Excel. За да се намали сложността на скрипта VBA, данните за колекцията се инициализират към атрибута клетки на excel на лист 2, присъстващ в работната книга. Освен това, текстовият атрибут помага за получаване на текстова информация, поставена под 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

Oбобщение

  • Selenium може да се класифицира като инструмент за автоматизация, който улеснява скрапванетоping на информация от HTML уеб страниците за извършване на уеб scrapingping използвайки Google Chrome.
  • Остъргванетоping в интернет трябва да се извършва внимателно.
  • Обикновено е против условията на уебсайта изтриването на информация.
  • Когато се одраскаping се извършва чрез селен, след което предлага поддръжка на множество браузъри.
  • С други думи, скреперът може да изпълнява подобни задачи на стърженеping чрез Firefox, както и Internet Explorer.

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