Pomocí aplikace Excel VBA a selenu

Obsah:

Anonim

Co je datové škrábání pomocí selenu?

Selen lze klasifikovat jako automatizační nástroj, který usnadňuje škrábání informací z webových stránek HTML za účelem škrábání webu s využitím google chrome.

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

  • Co je datové škrábání pomocí selenu?
  • Jak připravit makro aplikace Excel před provedením škrábání dat pomocí selenu?
  • Jak otevřít Google Chrome pomocí VBA?
  • Jak otevřít web v Google Chrome 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í selenu?

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 a pojmenujte jej jako test2.

Dílčí test2 ()Konec sub

Následují výsledky v modulu: -

Krok 5) Otevřete možnost odkazu na kartě nástrojů a přejděte do knihovny typů selenu. Na následující knihovny je třeba odkazovat na modul, protože pomáhá při otevírání google chrome a usnadňuje vývoj skriptů v makrech.

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

Jak otevřít Google Chrome pomocí VBA?

Zde je krok k otevření Google Chrome pomocí VBA

Krok 1) Deklarujte a inicializujte proměnné v podprogramu, jak je zobrazeno níže

Dílčí test2 ()Ztlumit ovladač jako nový webdriverDim rowc, cc, columnC jako celé číslo

Krok 2) Chcete-li otevřít google chrome pomocí selenu a VBA, napište driver.start „chrome“ a stiskněte F5 .

Následuje kód.

Dílčí test2 ()Ztlumit ovladač jako nový webdriverDim rowc, cc, columnC jako celé čísloDriver.start "Chrome"Application.Wait Now + Timevalue ("00:00:20")Konec sub

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

Jak otevřít web v Google Chrome pomocí VBA?

Jakmile budete mít přístup k google chrome pomocí VBA, dalším krokem bude začlenění přístupu na web pomocí VBA. To usnadňuje funkce get, kde musí být adresa URL předána jako uvozovky v atributu.

Postupujte podle následujících kroků, jak je zobrazeno

Modul by vypadal takto: -

Stisknutím klávesy F5 provedete makro.

Následující webová stránka by se otevřela v google chrome, jak je zobrazena

Dílčí test2 ()Ztlumit ovladač jako nový webdriverDim rowc, cc, columnC jako celé čísloDriver.start "Chrome"Driver.get "http://demo.guru99.com/test/web-table-element.php"Application.Wait Now + Timevalue ("00:00:20")Konec sub

Nyní je makro Excel připraveno s ohledem na provádění škrábacích úkolů. V dalším kroku by se zobrazilo, jak lze informace extrahovat použitím selenu a 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. Přístup k níže uvedenému zdrojovému kódu HTML získáte stisknutím kláves Ctrl + Shift + I.


Zdrojový kód by byl následující: -

Jak je vidět, data jsou strukturována jako jedna tabulka HTML. Proto, aby bylo možné vytáhnout celá data z tabulky HTML, vyžadovalo by to návrh makra, které vytáhne informace záhlaví tabulky HTML a odpovídající data spojená s tabulkou. Podle obrázku proveďte následující úkoly: -

Krok 1) Formulujte smyčku for, která prochází informacemi hlavičky HTML jako kolekce. Ovladač selenu musí najít informace o záhlaví tabulky HTML. K tomu využijeme metodu FindElementByClass () a FindElementByTag () k provedení úlohy, jak je zobrazena

Modul VBA by vypadal takto: -

Dílčí test2 ()Ztlumit ovladač jako nový WebDriverDim rowc, cc, columnC As Integerrowc = 2Application.ScreenUpdating = Falsedriver.Start "chrom"driver. Získejte „http://demo.guru99.com/test/web-table-element.php“Pro každý ovladač In.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Pro každé t v th.FindElementsByTag ("th")List2.Cells (1, cc) .Value = t.Textcc = cc + 1Další TDalší th

Krok 2) Dále by ovladač selenu vyhledal data tabulky pomocí podobného přístupu, jak je uvedeno výše. Musíte napsat následující kód: -

Dílčí test2 ()Ztlumit ovladač jako nový WebDriverDim rowc, cc, columnC As Integerrowc = 2Application.ScreenUpdating = Falsedriver.Start "chrom"driver. Získejte „http://demo.guru99.com/test/web-table-element.php“Pro každý ovladač In.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Pro každé t v th.FindElementsByTag ("th")List2.Cells (1, cc) .Value = t.Textcc = cc + 1Další TDalší thPro každý tr In driver.FindElementByClass ("dataTable"). FindElementByTag ("tbody"). FindElementsByTag ("tr")sloupec C = 1Pro každý td v tr.FindElementsByTag ("td")Sheet2.Cells (rowc, columnC) .Value = td.TextcolumnC = columnC + 1Další tdrowc = rowc + 1Další trApplication.Wait Now + TimeValue ("00:00:20")End Sub

Modul vba by vypadal takto: -

Excel lze inicializovat pomocí atributu Range na listu Excel nebo pomocí atributů buněk na listu Excel. Aby se snížila složitost skriptu VBA, data kolekce se inicializují na atribut buněk Excel listu 2, který je v sešitu. Atribut text dále pomáhá při umístění textových informací pod značku HTML.

Dílčí test2 ()Ztlumit ovladač jako nový WebDriverDim rowc, cc, columnC As Integerrowc = 2Application.ScreenUpdating = Falsedriver.Start "chrom"driver. Získejte „http://demo.guru99.com/test/web-table-element.php“Pro každý ovladač In.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Pro každé t v th.FindElementsByTag ("th")List2.Cells (1, cc) .Value = t.Textcc = cc + 1Další TDalší thPro každý tr In driver.FindElementByClass ("dataTable"). FindElementByTag ("tbody"). FindElementsByTag ("tr")sloupec C = 1Pro každý td v tr.FindElementsByTag ("td")Sheet2.Cells (rowc, columnC) .Value = td.TextcolumnC = columnC + 1Další tdrowc = rowc + 1Další trApplication.Wait Now + TimeValue ("00:00:20")End Sub

Modul vba by vypadal takto: -

Krok 3) 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 4) Stisknutím tlačítka obnovení získáte níže uvedený výstup

Krok 5) Porovnejte výsledky v aplikaci Excel s výsledky google chrome

Souhrn:

  • Selen lze klasifikovat jako automatizační nástroj, který usnadňuje škrábání informací z webových stránek HTML za účelem škrábání webu s využitím google chrome.
  • Škrábání na internetu by mělo být prováděno opatrně.
  • Obvykle je škrábání informací v rozporu s podmínkami webu.
  • Když se škrábání provádí pomocí selenu, nabízí podporu více prohlížečů.
  • Jinými slovy, škrabka může provádět podobné úkoly škrábání prostřednictvím prohlížeče Firefox, internetového prohlížeče také.
Společnost Skupina Pre Close (Rs) Aktuální cena (Rs) % změna