Selenium Výukový program VBA Excel: Příklad škrábání webu Chrome
Co je škrábání dat pomocí selenu?
Selenium lze klasifikovat jako automatizační nástroj, který usnadňuje škrábání informací z webových stránek HTML k provádění škrábání webu pomocí google chrome.
Jak připravit makro Excel před provedením škrábání dat pomocí Selenium?
Existují určité předpoklady, které je třeba provést na souboru makra aplikace Excel, než se pustíte do procesu seškrabování dat v aplikaci Excel.
Tyto předpoklady jsou následující: –
Krok 1) Otevřete makro založené na Excelu a získejte přístup k vývojářské možnosti aplikace Excel.
Krok 2) Vyberte možnost Visual Basic na pásu karet Vývojář.
Krok 3) Vložte nový modul.
Krok 4) Inicializujte nový podprogram a pojmenujte jej jako test2.
Sub test2() End sub
Výsledky v modulu budou následující: –
Krok 5) Přístup k možnosti reference na kartě nástroje a reference Selenium knihovna typů. Následující knihovny je třeba odkazovat na modul, protože pomáhá při otevírání prohlížeče Google Chrome a usnadňuje vývoj skriptování maker.
Nyní je soubor Excel připraven k interakci s internetovým prohlížečem. Dalšími kroky by bylo začlenit makro skript, který by usnadnil seškrabování dat v HTML.
Jak otevřít Google Chrome pomocí VBA?
Zde jsou kroky k otevření Google Chrome pomocí VBA
Krok 1) Deklarujte a inicializujte proměnné v podprogramu, jak je zobrazeno níže
Sub test2() Dim driver as new webdriver Dim rowc, cc, columnC as integer
Krok 2) Chcete-li otevřít google chrome pomocí selenu a VBA, napište driver.start „chrome“ a stiskněte F5.
Následující by byl kód.
Sub test2()
Dim driver as new webdriver
Dim rowc, cc, columnC as integer
Driver.start "Chrome"
Application.Wait Now+Timevalue("00:00:20")
End sub
Modul bude mít následující výsledek: –
Jak otevřít web v Google Chrome pomocí VBA?
Jakmile budete mít přístup k google chrome pomocí VBA, dalším krokem by bylo začlenit přístup na web pomocí VBA. To je usnadněno funkcí get, kde adresa URL musí v atributu projít jako dvojité uvozovky.
Postupujte podle zobrazených kroků
Modul by vypadal následovně: -
Stisknutím klávesy F5 spusťte makro.
Následující webová stránka se otevře v prohlížeči Google Chrome, jak je zobrazena
Sub test2()
Dim driver as new webdriver
Dim rowc, cc, columnC as integer
Driver.start "Chrome"
Driver.get "https://demo.guru99.com/test/web-table-element.php"
Application.Wait Now+Timevalue("00:00:20")
End sub
Nyní je makro Excel připraveno pro provádění úloh stírání. Další krok by ukázal, jak lze informace extrahovat použitím selenu a VBA.
Jak seškrábat informace z webu pomocí VBA?
Předpokládejme, že obchodník chce denně přistupovat k datům z webu. Pokaždé, když obchodník během dne stiskne tlačítko, měl by automaticky stáhnout data o trhu do aplikace Excel.
Z výše uvedeného webu by bylo nutné prohlédnout prvek a sledovat, jak jsou data strukturována. K níže uvedenému zdrojovému kódu HTML se dostanete 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í: -
Jak je vidět, data jsou strukturována jako jediná HTML tabulka. Proto, aby bylo možné vytáhnout celá data z tabulky HTML, vyžadovalo by to navržení makra, které stáhne informace záhlaví tabulky HTML a odpovídající data spojená s tabulkou. Proveďte následující úkoly, jak je zobrazeno: –
Krok 1) Formulujte cyklus for, který prochází informacemi záhlaví HTML jako kolekce. Ovladač selenu musí najít informace v záhlaví tabulky HTML. K tomu využíváme metody FindElementByClass() a FindElementByTag() a provedeme zobrazený úkol.
Modul VBA by vypadal takto: –
Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get "https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th
Krok 2) Dále by selenový ovladač našel data tabulky pomocí podobného přístupu, jak je uvedeno výše. Musíte napsat následující kód: –
Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get"https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th
For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr")
columnC = 1
For Each td In tr.FindElementsByTag("td")
Sheet2.Cells(rowc, columnC).Value = td.Text
columnC = columnC + 1
Next td
rowc = rowc + 1
Next tr
Application.Wait Now + TimeValue("00:00:20")
End Sub
Modul vba by vypadal takto: –
Excel lze inicializovat pomocí atributu Range v excelovém listu nebo pomocí atributu buněk excelového listu. Aby se snížila složitost skriptu VBA, jsou data kolekce inicializována do atributu buněk aplikace Excel listu 2 obsaženého v sešitu. Atribut text dále pomáhá při získávání textových informací umístěných pod značku HTML.
Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get"https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th
For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr")
columnC = 1
For Each td In tr.FindElementsByTag("td")
Sheet2.Cells(rowc, columnC).Value = td.Text
columnC = columnC + 1
Next td
rowc = rowc + 1
Next tr
Application.Wait Now + TimeValue("00:00:20")
End Sub
Modul vba by vypadal takto: –
Krok 3) 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 refresh nebo jakýkoli vhodný název, který by na něj mohl být inicializován. V tomto příkladu je tlačítko inicializováno jako obnovovací.
Krok 4) Stisknutím tlačítka pro obnovení získáte níže uvedený výstup
Krok 5) Porovnejte výsledky v excelu s výsledky google chrome
Shrnutí
- Selenium lze klasifikovat jako automatizační nástroj, který usnadňuje škrábání informací z webových stránek HTML k provádění škrábání webu pomocí google chrome.
- Seškrabování na internetu by mělo být prováděno opatrně.
- Normálně je v rozporu s podmínkami webu seškrábat informace.
- Když se škrábání provádí přes selen, nabízí podporu více prohlížečů.
- Jinými slovy, škrabka může provádět podobné úkoly škrábání Firefox, Internet Explorer také.












