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.
Krok 2) Vyberte moลพnost Visual Basic na pรกsu karet Vรฝvojรกล.
Krok 3) Vloลพte novรฝ modul.
Krok 4) Inicializujte novรฝ podprogram
Sub test() End sub
Modul bude mรญt nรกsledujรญcรญ vรฝsledek: โ
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.
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ฤ: -
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
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รญ.
Krok 5) Stisknutรญm tlaฤรญtka pro obnovenรญ zรญskรกte nรญลพe uvedenรฝ vรฝstup
Krok 6) Porovnejte vรฝsledky v excelu s vรฝsledky internet exploreru
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.











