Уеб скрапинг с VBA

Какво е Data Scraping?

Извличането на данни е техниката, която помага при извличането на желаната информация от HTML уеб страница в локален файл, присъстващ във вашата локална машина. Обикновено локалният файл може да съответства на excel файл, word файл или да кажем всеки друг Microsoft офис приложение. Помага при насочването на критична информация от уеб страницата.

Извличането на данни става лесно при ежедневна работа върху проект, базиран на изследвания, а такъв проект зависи изцяло от интернет и уебсайта. За по-нататъшна илюстрация по темата, нека вземем примера на дневен търговец, който изпълнява макрос в Excel за изтегляне на пазарна информация от уебсайт за финанси в лист в Excel с помощта на VBA.

Как да подготвим Excel Macro, преди да изпълним Data Scraping с помощта на Internet Explorer?

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

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

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

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

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

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

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

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

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

Sub test()
End sub

Модулът ще доведе до следния резултат: –

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

Стъпка 5) Осъществете достъп до опцията за справка под раздела с инструменти и справка Microsoft Библиотека с HTML обекти и Microsoft интернет контрол.

Следните файлове трябва да бъдат препратени към модула, тъй като той помага при отварянето на Internet Explorer и улеснява разработването на макро скриптове.

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

Сега Excel файлът е готов за взаимодействие с Internet Explorer. Следващата стъпка ще бъде да се включат макроскриптове, които ще улеснят изтриването на данни в HTML.

Как да отворите Internet Explorer с помощта на Excel VBA?

Стъпка 1) Инициализирайте променливата в подпрограмите, както е показано по-долу

Sub test()
Dim ie As New InternetExplorer 
Dim doc As New HTMLDocument

Стъпка 2) За да отворите Internet Explorer с помощта на VBA, пишете т.е. видимо=вярно и натиснете F5.

Sub test()
Dim ie As New InternetExplorer 
Dim doc As New HTMLDocument
Ie.visible=true

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

Отворете Internet Explorer с помощта на Excel VBA

Отворете Internet Explorer с помощта на Excel VBA

Как да отворите уебсайт в Internet Explorer с помощта на VBA?

Ето стъпките за отваряне на уебсайт в Internet Explorer с помощта на VBA

Стъпка 1) След като имате достъп до Internet Explorer с помощта на Excel VBA, следващата стъпка ще включва достъп до уебсайт с помощта на VBA. Това се улеснява от Navigate Attribute, при което URL адресът трябва да премине като двойни кавички в атрибута. Следвайте следните стъпки, както са показани.

Sub test()
Dim, ie As New InternetExplorer
Dim doc As New HTMLDocument
Dim ecoll As Object
ie.Visible = True
ie.navigate"https://demo.guru99.com/test/web-table-element.php"
Do
DoEvents
Loop Until ie.readyState = READYSTATE_COMPLETE

Стъпка 2) – Натиснете F5, за да изпълните макроса. Следната уеб страница ще бъде отворена, както е показано

Отворете уебсайта в Internet Explorer с помощта на VBA

Сега макросът на excel е готов по отношение на изпълнението на функциите за изтриване. Следващата стъпка ще покаже как информацията може да бъде извлечена от Internet Explorer с помощта на VBA.

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

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

От горния уебсайт би било необходимо да се провери елемент и да се наблюдава как са структурирани данните.

Стъпка 1) Достъп до изходния код на 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>

Изходният код ще бъде както следва: –

Sub test()
Dim ie As New InternetExplorer
Dim doc As New HTMLDocument
Dim ecoll As Object
ie.Visible = True
ie.navigate "https://demo.guru99.com/test/web-table-element.php"
Do
DoEvents
Loop Until ie.readyState = READYSTATE_COMPLETE
Set doc = ie.document

Както може да се види, данните са структурирани като една HTML таблица. Следователно, за да се изтеглят цели данни от html таблицата, ще е необходимо проектиране на макрос, който събира данните под формата на колекция.

След това колекцията ще бъде поставена в Excel. За да постигнете желаните резултати, изпълнете следните стъпки: –

Стъпка 2) Инициализирайте Html документа в подпрограмата

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

Стъпка 3) Инициализирайте елемента на колекцията, присъстващ в HTML документа

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

Sub test()
Dim ie As New InternetExplorer
Dim doc As New HTMLDocument
Dim ecoll As Object
ie.Visible = True
ie.navigate "https://demo.guru99.com/test/web-table-element.php"
Do
DoEvents
Loop Until ie.readyState = READYSTATE_COMPLETE
Set doc = ie.document
Set ecoll = doc.getElementsByTagName("table")

Стъпка 4) Инициализирайте клетките на листа на Excel с помощта на вложен цикъл, както е показано

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

Sub test()
Dim ie As New InternetExplorer
Dim doc As New HTMLDocument
Dim ecoll As Object

ie.Visible = True
ie.navigate "https://demo.guru99.com/test/web-table-element.php"
Do
DoEvents
Loop Until ie.readyState = READYSTATE_COMPLETE
Set doc = ie.document
Set ecoll = doc.getElementsByTagName("table")

Excel може да се инициализира с помощта на атрибута range на листа на Excel или чрез атрибута клетки на листа на Excel. За да се намали сложността на скрипта VBA, данните за колекцията се инициализират към атрибута клетки на excel на лист 1, присъстващ в работната книга.

След като макрос скриптът е готов, преминете и задайте подпрограмата към бутона на excel и излезте от модула на VBA. Етикетирайте бутона като опресняване или всяко подходящо име, което може да бъде инициализирано към него. За този пример бутонът се инициализира като опресняване.

Изтриване на информация от уебсайт с помощта на VBA

Стъпка 5) Натиснете бутона за опресняване, за да получите посочения по-долу резултат

Изтриване на информация от уебсайт с помощта на VBA

Стъпка 6) Сравнете резултатите в excel с резултатите от internet explorer

Изтриване на информация от уебсайт с помощта на VBA

Oбобщение

  • Извличането на данни позволява на потребителя да извлича само информацията, която потребителят иска. За да намерите най-добрите инструменти за тази цел, разгледайте този списък с инструменти за уеб скрапиране, които могат да ви помогнат ефективно да извлечете желаната информация от различни уебсайтове.
  • Изстъргването може да се извърши с помощта на Internet Explorer.
  • Процесът на сканиране е по-бавен в случай на Internet Explorer; въпреки това доставя желаните резултати на потребителя.
  • Изстъргването трябва да се извършва с абсолютно внимание и предпазливост, тъй като може да навреди и да повреди системата, която се използва за изстъргване.

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