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.

Krok 2) Vyberte možnost Visual Basic pod vývojářskou páskou.

Krok 3) vložte nový modul.

Krok 4) inicializovat nový podprogram
Sub test()End sub
modul bude mít za následek následující: –

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.

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ě: –


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

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í.

Krok 5) stisknutím tlačítka Obnovit získáte níže uvedený výstup

Krok 6) porovnejte výsledky v aplikaci excel s výsledky aplikace internet explorer

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í.