Pomocou programu Excel VBA a selénu

Obsah:

Anonim

Čo je to scraping dát pomocou selénu?

Selén možno klasifikovať ako automatizačný nástroj, ktorý uľahčuje škrabanie informácií z webových stránok HTML na vykonávanie škrabania webu pomocou google chrome.

V tomto návode sa dozviete:

  • Čo je to scraping dát pomocou selénu?
  • Ako pripraviť makro programu Excel pred vykonaním škrabania údajov pomocou selénu?
  • Ako otvoriť Google Chrome pomocou VBA?
  • Ako otvoriť web v prehliadači Google Chrome pomocou VBA?
  • Ako škrabať informácie z webových stránok pomocou VBA?

Ako pripraviť makro programu Excel pred vykonaním škrabania údajov pomocou selénu?

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 a pomenujte ho ako test2.

Čiastkový test2 ()Koniec pod

Nasledujúce by boli výsledky v module: -

Krok 5) Prístup na voľbu odkazu na karte nástrojov a odkaz na knižnicu typov selénu. Nasledujúce knižnice majú odkazovať na modul, pretože pomáha pri otváraní google chrome a uľahčuje vývoj makroskriptovania.

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

Ako otvoriť Google Chrome pomocou VBA?

Tu je krok k otvoreniu prehliadača Google Chrome pomocou VBA

Krok 1) Deklarujte a inicializujte premenné v podprograme, ako je zobrazené nižšie

Čiastkový test2 ()Stmaviť ovládač ako nový webdriverStlmiť riadok, kópiu, stĺpec C ako celé číslo

Krok 2) Ak chcete otvoriť google chrome pomocou selénu a VBA, napíšte driver.start „chrome“ a stlačte kláves F5 .

Toto by bol kód.

Čiastkový test2 ()Stmaviť ovládač ako nový webdriverStlmiť riadok, kópiu, stĺpec C ako celé čísloDriver.start "Chrome"Application.Wait Now + Timevalue ("00:00:20")Koniec pod

Výsledkom modulu by bolo toto: -

Ako otvoriť web v prehliadači Google Chrome pomocou VBA?

Akonáhle budete mať prístup k prehliadaču Google Chrome pomocou VBA, ďalším krokom bude začlenenie prístupu na webovú stránku pomocou VBA. Toto je uľahčené funkciou get, kde musí byť adresa URL v atribúte odovzdaná ako dvojité úvodzovky.

Podľa zobrazených pokynov postupujte podľa nasledujúcich pokynov

Modul by vyzeral takto: -

Stlačením klávesu F5 vykonáte makro.

Nasledujúca webová stránka by sa otvorila v prehliadači Google Chrome ako je zobrazené

Čiastkový test2 ()Stmaviť ovládač ako nový webdriverStlmiť riadok, kópiu, stĺpec C ako celé čísloDriver.start "Chrome"Driver.get "http://demo.guru99.com/test/web-table-element.php"Application.Wait Now + Timevalue ("00:00:20")Koniec pod

Teraz je makro programu Excel pripravené na vykonávanie úloh zoškrabávania. V ďalšom kroku by sa zobrazilo, ako je možné informácie extrahovať použitím selénu a 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é. Do nižšie uvedeného zdrojového kódu HTML sa dostanete stlačením kombinácie klávesov Control + Shift + I


Zdrojový kód by bol tento: -

Je zrejmé, že údaje sú štruktúrované ako jedna tabuľka HTML. Preto, aby bolo možné načítať celé údaje z tabuľky HTML, bolo by potrebné navrhnúť makro, ktoré stiahne informácie z hlavičky tabuľky HTML a zodpovedajúce údaje spojené s tabuľkou. Vykonajte tieto zobrazené úlohy: -

Krok 1) Vytvorte slučku for, ktorá prechádza informáciami hlavičky HTML ako kolekcia. Ovládač selénu musí nájsť informácie o hlavičke tabuľky HTML. Aby sme to dosiahli, využívame na vykonanie úlohy tak, ako je zobrazené, metódu FindElementByClass () a FindElementByTag ().

Modul VBA by vyzeral takto: -

Čiastkový test2 ()Stmaviť ovládač ako nový ovládač WebDriverDim rowc, cc, columnC As Integerrowc = 2Application.ScreenUpdating = Falsevodič.Startujte „chrómom“vodič. Získajte „http://demo.guru99.com/test/web-table-element.php“Pre každé th v driver.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Pre každé t v th.FindElementsByTag ("th")Sheet2.Cells (1, cc). Value = t.Textcc = cc + 1Nasledujúce TĎalšia č

Krok 2) Ďalej by selénový ovládač vyhľadal údaje z tabuľky pomocou podobného prístupu, ako je uvedené vyššie. Musíte napísať nasledujúci kód: -

Čiastkový test2 ()Stmaviť ovládač ako nový ovládač WebDriverDim rowc, cc, columnC As Integerrowc = 2Application.ScreenUpdating = Falsevodič.Startujte „chrómom“vodič. Získajte „http://demo.guru99.com/test/web-table-element.php“Pre každé th v driver.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Pre každé t v th.FindElementsByTag ("th")Sheet2.Cells (1, cc). Value = t.Textcc = cc + 1Nasledujúce TĎalšia čPre každý ovládač tr. Driver.FindElementByClass ("dataTable"). FindElementByTag ("tbody"). FindElementsByTag ("tr")stĺpec C = 1Pre každý td v tr.FindElementsByTag ("td")Sheet2.Cells (rowc, columnC). Value = td.Textstĺpec C = stĺpec C + 1Ďalšie tdriadok = riadok + 1Ďalej trApplication.Wait Now + TimeValue ("00:00:20")Koniec Sub

Modul vba bude vyzerať nasledovne: -

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. Na zníženie zložitosti skriptu VBA sa údaje o zhromažďovaní inicializujú na atribút buniek programu Excel v hárku 2, ktorý sa nachádza v zošite. Atribút text ďalej pomáha pri získavaní textových informácií umiestnených pod značkou HTML.

Čiastkový test2 ()Stmaviť ovládač ako nový ovládač WebDriverDim rowc, cc, columnC As Integerrowc = 2Application.ScreenUpdating = Falsevodič.Startujte „chrómom“vodič. Získajte „http://demo.guru99.com/test/web-table-element.php“Pre každé th v driver.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Pre každé t v th.FindElementsByTag ("th")Sheet2.Cells (1, cc). Value = t.Textcc = cc + 1Nasledujúce TĎalšia čPre každý ovládač tr. Driver.FindElementByClass ("dataTable"). FindElementByTag ("tbody"). FindElementsByTag ("tr")stĺpec C = 1Pre každý td v tr.FindElementsByTag ("td")Sheet2.Cells (rowc, columnC). Value = td.Textstĺpec C = stĺpec C + 1Ďalšie tdriadok = riadok + 1Ďalej trApplication.Wait Now + TimeValue ("00:00:20")Koniec Sub

Modul vba bude vyzerať nasledovne: -

Krok 3) 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 obnovovacie.

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

Krok 5) Porovnajte výsledky v programe Excel s výsledkami google chrome

Zhrnutie:

  • Selén možno klasifikovať ako automatizačný nástroj, ktorý uľahčuje škrabanie informácií z webových stránok HTML na vykonávanie škrabania webu pomocou google chrome.
  • Škrabanie na internete by sa malo vykonávať opatrne.
  • Šírenie informácií je obvykle v rozpore s podmienkami webovej stránky.
  • Keď sa scraping vykonáva prostredníctvom selénu, ponúka to podporu viacerých prehľadávačov.
  • Inými slovami, škrabka môže vykonávať podobné úlohy pri škrabaní aj cez Firefox, internetový prieskumník.
Spoločnosť Skupina Pre Close (Rs) Aktuálna cena (Rs) % zmena