Webové škrábání s VBA
co je to škrábání dat?
data scraping je technika, která pomáhá při extrakci požadovaných informací z webové stránky HTML do místního souboru přítomného v místním počítači. Obvykle by místní soubor mohl odpovídat souboru aplikace excel, souboru aplikace word nebo jakékoli aplikaci sady Microsoft office. Pomáhá při směrování důležitých informací z webové stránky.
škrábání dat se stává jednoduchým při každodenní práci na výzkumném projektu a takový projekt je čistě závislý na internetu a webových stránkách. Pro další ilustraci na toto téma si vezměme příklad obchodníka dne, který provozuje makro excel pro tahání informací o trhu z finančního webu do listu aplikace excel pomocí VBA.
v tomto tutoriálu se dozvíte:
- co je to škrábání dat?
- jak připravit makro Excel před provedením škrábání dat pomocí aplikace Internet explorer?
- jak otevřít aplikaci Internet Explorer pomocí aplikace Excel VBA?
- jak otevřít webové stránky v aplikaci Internet explorer pomocí VBA?
- jak seškrábat informace z webových stránek pomocí VBA?
jak připravit makro Excel před provedením škrábání dat pomocí aplikace Internet explorer?
existují určité předpoklady, které je třeba provést v souboru makra excel, než se dostanete do procesu škrábání dat v aplikaci excel.
tyto předpoklady jsou následující – –
Krok 1) Otevřete makro založené na Excelu a otevřete možnost vývojáře aplikace excel.
![](https://www.guru99.com/images/1/020820_0511_WebScraping1.jpg)
Krok 2) Vyberte možnost Visual Basic pod vývojářskou páskou.
![](https://www.guru99.com/images/1/020820_0511_WebScraping2.jpg)
Krok 3) vložte nový modul.
![](https://www.guru99.com/images/1/020820_0511_WebScraping3.png)
Krok 4) inicializovat nový podprogram
Sub test()End sub
modul bude mít za následek následující: –
![](https://www.guru99.com/images/1/020820_0511_WebScraping4.jpg)
Krok 5) otevřete možnost reference na kartě nástroj a odkazujte na knihovnu objektů Microsoft HTML a Microsoft internet control.
následující soubory se odkazují na modul, protože pomáhá při otevírání aplikace internet explorer a usnadňuje vývoj skriptování makra.
![](https://www.guru99.com/images/1/020820_0511_WebScraping5.png)
nyní je soubor Excel připraven k interakci s aplikací internet explorer. Dalším krokem by bylo začlenění makro skriptů, které by usnadnily škrábání dat v HTML.
jak otevřít aplikaci Internet Explorer pomocí aplikace 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. visible=true a stiskněte klávesu F5.
Sub test()Dim ie As New InternetExplorer Dim doc As New HTMLDocumentIe.visible=true
modul bude vypadat následovně: –
![](https://www.guru99.com/images/1/020820_0511_WebScraping6.jpg)
![](https://www.guru99.com/images/1/020820_0511_WebScraping7.jpg)
jak otevřít webové stránky v aplikaci Internet explorer pomocí VBA?
zde jsou kroky k otevření webové stránky V Internet exploer pomocí VBA
Krok 1) Jakmile budete mít přístup k aplikaci internet explorer pomocí aplikace Excel VBA, další krok by zahrnoval přístup k webové stránce pomocí VBA. To usnadňuje atribut navigovat, kde URL musí projít jako dvojité uvozovky v atributu. Postupujte podle následujících kroků.
Sub test()Dim, ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate"http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETE
Krok 2) – Stisknutím klávesy F5 spustíte makro. Následující webová stránka bude otevřena, jak je zobrazena
![](https://www.guru99.com/images/1/020820_0511_WebScraping8.jpg)
nyní je makro excel připraveno s ohledem na provádění funkcí škrábání. Dalším krokem by se zobrazilo, jak lze informace extrahovat z aplikace internet explorer pomocí VBA.
jak seškrábat informace z webových stránek pomocí VBA?
Předpokládejme, že obchodník den chce přístup k datům z webových stránek na denní bázi. Pokaždé, když obchodník stiskne tlačítko, měl by automaticky vytáhnout tržní data do aplikace excel.
z výše uvedených webových stránek by bylo nutné zkontrolovat prvek a sledovat, jak jsou data strukturována.
Krok 1) Otevřete níže uvedený zdrojový kód HTML 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 InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.document
jak je vidět, data jsou strukturována jako jedna tabulka HTML. Proto, aby bylo možné vytáhnout celá data z tabulky html, bylo by nutné navrhnout makro, které shromažďuje data ve formě sbírky.
Kolekce by pak byla vložena do aplikace excel. Chcete-li dosáhnout požadovaných výsledků, proveďte níže uvedené kroky: –
Krok 2) inicializujte dokument Html v podprogramu
modul VBA bude vypadat následovně: –
Krok 3) inicializovat prvek kolekce přítomný v dokumentu HTML
modul VBA bude vypadat následovně: –
Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.documentSet 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 následovně: –
Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.documentSet ecoll = doc.getElementsByTagName("table")
excel lze inicializovat pomocí atributu rozsah listu aplikace excel nebo pomocí atributu buňky listu aplikace excel. Chcete-li snížit složitost skriptu VBA, data sběru jsou inicializována do atributu buněk excel v listu 1 přítomném v sešitu.
jakmile je makro skript připraven, předejte a přiřaďte podprogram tlačítku excel a ukončete modul VBA. Označte tlačítko jako obnovit nebo jakýkoli vhodný název, který by mohl být inicializován. V tomto příkladu je tlačítko inicializováno jako obnovení.
![](https://www.guru99.com/images/1/020820_0511_WebScraping9.jpg)
Krok 5) stisknutím tlačítka Obnovit získáte níže uvedený výstup
![](https://www.guru99.com/images/1/020820_0511_WebScraping10.jpg)
Krok 6) porovnejte výsledky v aplikaci excel s výsledky aplikace internet explorer
![](https://www.guru99.com/images/1/020820_0511_WebScraping11.jpg)
shrnutí:
- škrábání dat umožňuje uživateli vyškrábat pouze informace, které uživatel chce.
- škrábání lze provést pomocí aplikace internet explorer.
- proces škrábání je pomalejší v případě aplikace internet explorer; poskytuje však požadované výsledky uživateli.
- škrábání by mělo být prováděno s naprostou opatrností a opatrností, protože může poškodit a poškodit systém používaný pro škrábání.