Web scraping s VBA

Obsah:

Anonim

Čo je to scraping údajov?

Šrotovanie údajov je technika, ktorá pomáha pri extrakcii požadovaných informácií z webovej stránky HTML do miestneho súboru vo vašom lokálnom počítači. Za normálnych okolností by miestny súbor mohol zodpovedať súboru programu Excel, slovnému súboru alebo povedzme ľubovoľnej kancelárskej aplikácii Microsoft. Pomáha pri smerovaní dôležitých informácií z webovej stránky.

Pri každodennej práci na projekte založenom na výskume je zhromažďovanie údajov jednoduché a takýto projekt je čisto závislý od internetu a webových stránok. Na ďalšiu ilustráciu tejto témy si vezmime príklad denného obchodníka, ktorý prevádzkuje makro programu Excel na stiahnutie informácií o trhu z finančného webu do tabuľky excelu pomocou VBA.

V tomto návode sa dozviete:

  • Čo je to scraping údajov?
  • Ako pripraviť makro programu Excel pred vykonaním scrapingu údajov pomocou internetového prieskumníka?
  • Ako otvoriť program Internet Explorer pomocou programu Excel VBA?
  • Ako otvoriť web v prehliadači Internet pomocou VBA?
  • Ako škrabať informácie z webových stránok pomocou VBA?

Ako pripraviť makro programu Excel pred vykonaním scrapingu údajov pomocou internetového prieskumníka?

Existujú určité predpoklady, ktoré je potrebné vykonať v súbore makier programu Excel predtým, ako sa dostanete do procesu škrabania údajov v programe Excel.

Ide o tieto predpoklady: -

Krok 1) Otvorte makro založené na programe Excel a sprístupnite vývojársku možnosť programu Excel.

Krok 2) Na páske s nástrojmi pre vývojárov vyberte možnosť Visual Basic.

Krok 3) Vložte nový modul.

Krok 4) Inicializujte nový podprogram

Sub test()End sub

Výsledkom modulu by bolo toto: -

Krok 5) Prejdite na možnosť nástroja na karte nástrojov a odkazujte na Objektovú knižnicu Microsoft HTML a ovládanie internetu cez Microsoft.

Nasledujúce súbory majú na modul odkazovať, pretože pomáhajú pri otváraní internetového prieskumníka a uľahčujú vývoj makroskriptovania.

Teraz je súbor programu Excel pripravený na interakciu s internetovým prehliadačom. Ďalším krokom by bolo začlenenie makro skriptov, ktoré by uľahčili škrabanie údajov v HTML.

Ako otvoriť program Internet Explorer pomocou programu Excel VBA?

Krok 1) Inicializujte premennú v podprogramoch, ako je zobrazené nižšie

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

Krok 2) Ak chcete otvoriť program Internet Explorer pomocou VBA, napíšte ie visible = true a stlačte kláves F5.

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

Modul by vyzeral takto: -

Ako otvoriť web v prehliadači Internet pomocou VBA?

Tu sú kroky na otvorenie webových stránok v internetovom prehliadači pomocou VBA

Krok 1) Akonáhle budete mať prístup k internetovému prieskumníkovi pomocou programu Excel VBA, ďalší krok bude zahŕňať prístup na webovú stránku pomocou VBA. Toto je uľahčené funkciou Navigate Attribute, v ktorej musí byť adresa URL odoslaná ako dvojité úvodzovky v atribúte. Podľa zobrazených pokynov postupujte podľa nasledujúcich pokynov.

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) - Stlačením klávesu F5 vykonajte makro. Nasledujúca webová stránka by sa otvorila tak, ako je zobrazená

Teraz je makro programu Excel pripravené na vykonávanie funkcií škrabania. V ďalšom kroku sa zobrazí, ako je možné informácie extrahovať z prehliadača Internet Explorer pomocou VBA.

Ako škrabať informácie z webových stránok pomocou VBA?

Predpokladajme, že denný obchodník chce mať každodenný prístup k údajom z webovej stránky. Zakaždým, keď obchodník stlačí kliknutie na tlačidlo, malo by automaticky natiahnuť údaje o trhu do excelu.

Z vyššie uvedenej webovej stránky by bolo potrebné skontrolovať prvok a sledovať, ako sú údaje štruktúrované.

Krok 1) Prístup k zdrojovému kódu HTML, ktorý je uvedený nižšie, získate stlačením klávesov Control + Shift + I

Zdrojový kód by bol tento: -

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

Je zrejmé, že údaje sú štruktúrované ako jedna tabuľka HTML. Preto, aby bolo možné vytiahnuť celé údaje z html tabuľky, bolo by potrebné navrhnúť makro, ktoré zhromažďuje údaje vo forme kolekcie.

Zbierka by sa potom prilepila do programu Excel. Požadované výsledky dosiahnete vykonaním nižšie uvedených krokov: -

Krok 2) Inicializujte dokument HTML v podprogramu

Modul VBA by vyzeral takto: -

Krok 3) Inicializujte prvok kolekcie, ktorý sa nachádza v dokumente HTML

Modul VBA by vyzeral 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 bunky listu programu Excel pomocou vnorenej slučky, ako je to znázornené

Modul VBA by vyzeral 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")

Program Excel je možné inicializovať pomocou atribútu range v hárku programu Excel alebo pomocou atribútov buniek v hárku programu Excel. Aby sa znížila zložitosť skriptu VBA, údaje o zhromažďovaní sa inicializujú na atribút buniek programu Excel v hárku 1, ktorý sa nachádza v zošite.

Keď je skript makra pripravený, odovzdajte a priraďte podprogram k tlačidlu Excel a ukončite modul VBA. Označte tlačidlo ako obnovovacie alebo akýkoľvek vhodný názov, ktorý by sa dalo inicializovať. V tomto príklade je tlačidlo inicializované ako obnovenie.

Krok 5) Stlačením tlačidla obnovenia získate výstup uvedený nižšie

Krok 6) Porovnajte výsledky v programe Excel s výsledkami programu Internet Explorer

Zhrnutie:

  • Škrabanie údajov umožňuje používateľovi vyškriabať iba informácie, ktoré chce.
  • Škrabanie je možné vykonať pomocou internetového prieskumníka.
  • Proces škrabania je v prípade internetového prieskumníka pomalší; používateľovi však prináša požadované výsledky.
  • Škrabanie by sa malo vykonávať s absolútnou opatrnosťou a opatrnosťou, pretože môže poškodiť a poškodiť systém používaný na škrabanie.
CompanyGroupPre Close (Rs)Current Price (Rs)% Change