Web Scrabping s VBA

Co je to scraping datping?

Smazรกnรญ datping je technika, kterรก pomรกhรก v extracpล™enos poลพadovanรฝch informacรญ z webovรฉ strรกnky HTML do lokรกlnรญho souboru na vaลกem lokรกlnรญm poฤรญtaฤi. Lokรกlnรญ soubor mลฏลพe obvykle odpovรญdat souboru aplikace Excel, soubor Word nebo, ล™eknฤ›me, jakรฉmukoli jinรฉmu Microsoft kancelรกล™skรก aplikace. Pomรกhรก pล™i pล™enosu kritickรฝch informacรญ z webovรฉ strรกnky.

Data seลกkrรกbanรกping se stรกvรก jednoduchรฝm, kdyลพ se dennฤ› pracuje na vรฝzkumnรฉm projektu a takovรฝ projekt je zcela zรกvislรฝ na internetu a webovรฝch strรกnkรกch. Pro dalลกรญ ilustraci tรฉmatu si vezmฤ›me pล™รญklad dennรญho obchodnรญka, kterรฝ spouลกtรญ excelovskรฉ makro pro naฤtenรญ trลพnรญch informacรญ z finanฤnรญ webovรฉ strรกnky do excelovskรฉho listu pomocรญ VBA.

Jak pล™ipravit makro v Excelu pล™ed provedenรญm scrapingu datping pouลพรญvรกte Internet Explorer?

Pล™ed zahรกjenรญm procesu scrapingu dat je tล™eba v souboru makra Excelu splnit urฤitรฉ pล™edpoklady.ping v Excelu.

Tyto pล™edpoklady jsou nรกsledujรญcรญ: โ€“

Krok 1) Otevล™ete makro zaloลพenรฉ na Excelu a zรญskejte pล™รญstup k vรฝvojรกล™skรฉ moลพnosti aplikace Excel.

Pล™รญprava makra v Excelu pล™ed provedenรญm scrapingu datping pomocรญ Internet Exploreru

Krok 2) Vyberte moลพnost Visual Basic na pรกsu karet Vรฝvojรกล™.

Pล™รญprava makra v Excelu pล™ed provedenรญm scrapingu datping pomocรญ Internet Exploreru

Krok 3) Vloลพte novรฝ modul.

Pล™รญprava makra v Excelu pล™ed provedenรญm scrapingu datping pomocรญ Internet Exploreru

Krok 4) Inicializujte novรฝ podprogram

Sub test()
End sub

Modul bude mรญt nรกsledujรญcรญ vรฝsledek: โ€“

Pล™รญprava makra v Excelu pล™ed provedenรญm scrapingu datping pomocรญ Internet Exploreru

Krok 5) Pล™รญstup k moลพnosti reference na kartฤ› nรกstroje a reference Microsoft Knihovna objektลฏ HTML a Microsoft ovlรกdรกnรญ internetu.

Nรกsledujรญcรญ soubory je tล™eba odkazovat na modul, protoลพe pomรกhรก pล™i otevรญrรกnรญ prohlรญลพeฤe Internet Explorer a usnadลˆuje vรฝvoj skriptovรกnรญ maker.

Pล™รญprava makra v Excelu pล™ed provedenรญm scrapingu datping pomocรญ Internet Exploreru

Soubor Excel je nynรญ pล™ipraven k interakci s Internet Explorerem. Dalลกรญm krokem by bylo zaฤlenฤ›nรญ makro skriptลฏ, kterรฉ by usnadnily scrapovรกnรญ dat.ping v HTML.

Jak otevล™รญt Internet Explorer pomocรญ Excel VBA?

Krok 1) Inicializujte promฤ›nnou v podprogramech, jak je zobrazeno nรญลพe

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

Krok 2) Chcete-li otevล™รญt Internet Explorer pomocรญ VBA, napiลกte tj. viditelnรฝ=pravda a stisknฤ›te F5.

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

Modul by vypadal nรกsledovnฤ›: -

Otevล™ete Internet Explorer pomocรญ Excel VBA

Otevล™ete Internet Explorer pomocรญ Excel VBA

Jak otevล™รญt web v Internet Exploreru pomocรญ VBA?

Zde jsou kroky k otevล™enรญ webu v Internet Exploreru pomocรญ VBA

Krok 1) Jakmile budete moci pล™istupovat k Internet Exploreru pomocรญ Excel VBA, dalลกรญ krok by zahrnoval pล™รญstup k webovรฉ strรกnce pomocรญ VBA. To usnadลˆuje Navigate Attribute, kde adresa URL musรญ bรฝt v atributu pล™edรกna jako dvojitรฉ uvozovky. Postupujte podle zobrazenรฝch krokลฏ.

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

Krok 2) โ€“ Stisknutรญm klรกvesy F5 spusลฅte makro. Otevล™e se nรกsledujรญcรญ webovรก strรกnka, jak je zobrazena

Otevล™ete webovou strรกnku v prohlรญลพeฤi Internet Explorer pomocรญ jazyka VBA

Nynรญ je makro Excel pล™ipraveno k provedenรญ scrapingu.ping funkce. Dalลกรญm krokem by bylo ukรกzat, jak lze informace explicitnฤ›tracz Internet Exploreru pomocรญ VBA.

Jak seลกkrรกbat informace z webu pomocรญ VBA?

Pล™edpoklรกdejme, ลพe obchodnรญk chce dennฤ› pล™istupovat k datลฏm z webu. Pokaลพdรฉ, kdyลพ obchodnรญk bฤ›hem dne stiskne tlaฤรญtko, mฤ›l by automaticky stรกhnout data o trhu do aplikace Excel.

Z vรฝลกe uvedenรฉho webu by bylo nutnรฉ prohlรฉdnout prvek a sledovat, jak jsou data strukturovรกna.

Krok 1) K nรญลพe uvedenรฉmu zdrojovรฉmu kรณdu HTML se dostanete stisknutรญm Ctrl + 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>

Zdrojovรฝ kรณd by byl nรกsledujรญcรญ: -

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

Jak je vidฤ›t, data jsou strukturovรกna jako jedinรก HTML tabulka. Proto, aby bylo moลพnรฉ vytรกhnout celรก data z html tabulky, vyลพadovalo by to navrลพenรญ makra, kterรฉ shromaลพฤuje data ve formฤ› kolekce.

Kolekce by pak byla vloลพena do excelu. K dosaลพenรญ poลพadovanรฝch vรฝsledkลฏ proveฤte nรญลพe uvedenรฉ kroky: โ€“

Krok 2) Inicializujte dokument Html v podprogramu

Modul VBA by vypadal takto: โ€“

Krok 3) Inicializujte prvek kolekce pล™รญtomnรฝ v dokumentu HTML

Modul VBA by vypadal takto: โ€“

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")

Krok 4) Inicializujte buลˆky listu Excel pomocรญ vnoล™enรฉ smyฤky, jak je znรกzornฤ›no

Modul VBA by vypadal takto: โ€“

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 lze inicializovat pomocรญ atributu range excelovรฉho listu nebo atributu pล™es buลˆky excelovรฉho listu. Aby se snรญลพila sloลพitost skriptu VBA, jsou data kolekce inicializovรกna podle atributu bunฤ›k aplikace Excel listu 1 obsaลพenรฉho v seลกitu.

Jakmile je makro skript pล™ipraven, pล™edejte a pล™iล™aฤte podprogram k tlaฤรญtku excel a ukonฤete modul VBA. Oznaฤte tlaฤรญtko jako refresh nebo jakรฝkoli vhodnรฝ nรกzev, kterรฝ by na nฤ›j mohl bรฝt inicializovรกn. V tomto pล™รญkladu je tlaฤรญtko inicializovรกno jako obnovenรญ.

Seลกkrabujte informace z webu pomocรญ VBA

Krok 5) Stisknutรญm tlaฤรญtka pro obnovenรญ zรญskรกte nรญลพe uvedenรฝ vรฝstup

Seลกkrabujte informace z webu pomocรญ VBA

Krok 6) Porovnejte vรฝsledky v excelu s vรฝsledky internet exploreru

Seลกkrabujte informace z webu pomocรญ VBA

Shrnutรญ

  • Data seลกkrรกbanรกping umoลพลˆuje uลพivateli vyฤistit pouze informace, kterรฉ chce. Chcete-li najรญt nejlepลกรญ nรกstroje pro tento รบฤel, podรญvejte se na tento seznam webovรฉho scrapinguping nรกstroje, kterรฉ vรกm mohou efektivnฤ› pomoci s extracpoลพadovanรฉ informace z rลฏznรฝch webovรฝch strรกnek.
  • Jizvaping lze provรฉst pomocรญ Internet Exploreru.
  • Proces ลกkrรกbรกnรญping je v pล™รญpadฤ› Internet Exploreru pomalejลกรญ; nicmรฉnฤ› uลพivateli poskytuje poลพadovanรฉ vรฝsledky.
  • ล krรกbรกnรญping by mฤ›lo bรฝt provรกdฤ›no s absolutnรญ opatrnostรญ a opatrnostรญ, protoลพe mลฏลพe poลกkodit a zhroutit systรฉm pouลพรญvanรฝ ke ลกkrรกbรกnรญ.ping.

Shrลˆte tento pล™รญspฤ›vek takto: