Уеб скрапинг с VBA
Какво е Data Scraping?
Извличането на данни е техниката, която помага при извличането на желаната информация от HTML уеб страница в локален файл, присъстващ във вашата локална машина. Обикновено локалният файл може да съответства на excel файл, word файл или да кажем всеки друг Microsoft офис приложение. Помага при насочването на критична информация от уеб страницата.
Извличането на данни става лесно при ежедневна работа върху проект, базиран на изследвания, а такъв проект зависи изцяло от интернет и уебсайта. За по-нататъшна илюстрация по темата, нека вземем примера на дневен търговец, който изпълнява макрос в Excel за изтегляне на пазарна информация от уебсайт за финанси в лист в Excel с помощта на VBA.
Как да подготвим Excel Macro, преди да изпълним Data Scraping с помощта на Internet Explorer?
Има определени предпоставки, които трябва да бъдат изпълнени върху файла с макроси на excel, преди да влезете в процеса на изчерпване на данни в excel.
Тези предпоставки са както следва: –
Стъпка 1) Отворете базиран на Excel макрос и отворете опцията за разработчици на excel.
Стъпка 2) Изберете опцията Visual Basic под лентата за програмисти.
Стъпка 3) Поставете нов модул.
Стъпка 4) Инициализиране на нова подпрограма
Sub test() End sub
Модулът ще доведе до следния резултат: –
Стъпка 5) Осъществете достъп до опцията за справка под раздела с инструменти и справка Microsoft Библиотека с HTML обекти и Microsoft интернет контрол.
Следните файлове трябва да бъдат препратени към модула, тъй като той помага при отварянето на 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 с помощта на 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, за да изпълните макроса. Следната уеб страница ще бъде отворена, както е показано
Сега макросът на 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. Етикетирайте бутона като опресняване или всяко подходящо име, което може да бъде инициализирано към него. За този пример бутонът се инициализира като опресняване.
Стъпка 5) Натиснете бутона за опресняване, за да получите посочения по-долу резултат
Стъпка 6) Сравнете резултатите в excel с резултатите от internet explorer
Oбобщение
- Извличането на данни позволява на потребителя да извлича само информацията, която потребителят иска. За да намерите най-добрите инструменти за тази цел, разгледайте този списък с инструменти за уеб скрапиране, които могат да ви помогнат ефективно да извлечете желаната информация от различни уебсайтове.
- Изстъргването може да се извърши с помощта на Internet Explorer.
- Процесът на сканиране е по-бавен в случай на Internet Explorer; въпреки това доставя желаните резултати на потребителя.
- Изстъргването трябва да се извършва с абсолютно внимание и предпазливост, тъй като може да навреди и да повреди системата, която се използва за изстъргване.











