Web Scraping s VBA

Obsah:

Anonim

Co je to škrábání dat?

Šrotování dat 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 ve vašem místním počítači. Za normálních okolností by místní soubor mohl odpovídat souboru aplikace Excel, souboru se slovy nebo říkat jakékoli kancelářské aplikaci Microsoft. Pomáhá při směrování důležitých informací z webové stránky.

Při každodenní práci na projektu založeném na výzkumu se datové škrábání stává jednoduchým a takový projekt je čistě závislý na internetu a webových stránkách. Pro další ilustraci tohoto tématu si vezměme příklad obchodníka s dnem, který provozuje makro Excel pro získávání informací o trhu z finančního webu do listu Excel pomocí VBA.

V tomto výukovém programu se naučíte:

  • Co je to škrábání dat?
  • Jak připravit makro aplikace Excel před provedením škrábání dat pomocí aplikace Internet Explorer?
  • Jak otevřít Internet Explorer pomocí aplikace Excel VBA?
  • Jak otevřít web v prohlížeči Internet Explorer pomocí VBA?
  • Jak škrábat informace z webových stránek pomocí VBA?

Jak připravit makro aplikace 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 aplikace Excel, než se dostanete do procesu škrábání dat v aplikaci Excel.

Jedná se o následující předpoklady: -

Krok 1) Otevřete makro založené na aplikaci Excel a získejte přístup k možnosti vývojáře aplikace Excel.

Krok 2) Na pásu karet vývojáře vyberte možnost Visual Basic.

Krok 3) Vložte nový modul.

Krok 4) Inicializujte nový podprogram

Sub test()End sub

Výsledek modulu by byl následující: -

Krok 5) Otevřete možnost odkazu na kartě nástroje a odkazujte na Microsoft HTML Object Library a Microsoft internet control.

Na následující soubory je třeba odkazovat na modul, protože pomáhá při otevírání internetového prohlížeče a usnadňuje vývoj skriptování v makrech.

Nyní je soubor Excel připraven komunikovat s internetovým prohlížečem. Dalším krokem by bylo začlenit makro skripty, které by usnadnily škrábání dat v HTML.

Jak otevřít Internet Explorer pomocí aplikace Excel VBA?

Krok 1) Inicializujte proměnnou v podprogramech, jak je zobrazeno níže

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

Krok 2) Chcete-li otevřít internetový prohlížeč pomocí VBA, napište ie visible = true a stiskněte F5.

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentIe.visible=true

Modul by vypadal takto: -

Jak otevřít web v prohlížeči Internet Explorer pomocí VBA?

Tady jsou kroky k otevření webu v internetovém průzkumníku pomocí VBA

Krok 1) Jakmile budete mít přístup k internetovému průzkumníku pomocí aplikace Excel VBA, další krok bude zahrnovat přístup na web pomocí VBA. To usnadňuje Navigate Attribute, kde URL musí být předáno jako uvozovky v atributu. Postupujte podle následujících kroků, jak je zobrazeno.

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 provedete makro. Následující webová stránka by se otevřela tak, jak je zobrazena

Nyní je makro Excel připraveno s ohledem na provádění funkcí škrábání. Dalším krokem by bylo zobrazit, jak lze informace extrahovat z internetového prohlížeče pomocí VBA.

Jak škrábat informace z webových stránek pomocí VBA?

Předpokládejme, že denní obchodník chce mít každodenní přístup k datům z webu. Pokaždé, když denní obchodník stiskne tlačítko, měl by automaticky stáhnout data o trhu do aplikace Excel.

Z výše uvedeného webu 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 kombinace kláves Control + Shift + I.

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 html tabulky, by to vyžadovalo návrh makra, které sbírá data ve formě kolekce.

Sbírka by pak byla vložena do aplikace Excel. 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 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 takto: -

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 range listu Excel nebo pomocí atributu buněk listu Excel. Aby se snížila složitost skriptu VBA, data sběru se inicializují na atribut buněk Excel listu 1, který je v sešitu.

Jakmile je skript makra připraven, předejte a přiřaďte podprogram tlačítku aplikace Excel a ukončete modul VBA. Označte tlačítko jako obnovovací nebo jakýkoli vhodný název, který by bylo možné inicializovat. V tomto příkladu je tlačítko inicializováno jako aktualizace.

Krok 5) Stisknutím tlačítka pro obnovení získáte níže uvedený výstup

Krok 6) Porovnejte výsledky v aplikaci Excel s výsledky internetového prohlížeče

Souhrn:

  • Škrábání dat umožňuje uživateli vyškrábat pouze informace, které uživatel chce.
  • Škrábání lze provést pomocí internetového prohlížeče.
  • Proces škrábání je v případě internetového prohlížeče pomalejší; uživateli však přináší požadované výsledky.
  • Š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, který se používá k škrábání.
CompanyGroupPre Close (Rs)Current Price (Rs)% Change