Selenium Výukový program VBA a Excelu: Chrome Web Scratchping Příklad
Co je to scraping datping použití selenu?
Selenium lze klasifikovat jako automatizační nástroj, který usnadňuje scrapingping informací z webových stránek HTML pro provedení webového scrapinguping pomocí prohlížeče Google Chrome.
Jak připravit makro v Excelu před provedením scrapingu datping použitím Selenium?
Před zahájením procesu scrapingu dat je třeba v souboru makra Excelu splnit určité předpoklady.ping v Excelu.
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.
Soubor Excel je nyní připraven k interakci s Internet Explorerem. Dalším krokem by mělo být začlenění makro skriptu, který by usnadnilo scrapování dat.ping 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 excelovské makro připraveno k provedení scrapingu.ping úkoly. Dalším krokem by bylo ukázat, jak lze informace exportovattracpomocí 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 scrapingping informací z webových stránek HTML pro provedení webového scrapinguping pomocí prohlížeče Google Chrome.
- Škrábáníping na internetu by se mělo dělat opatrně.
- Normálně je v rozporu s podmínkami webu seškrábat informace.
- Když se škrábneping se provádí pomocí Selenium, pak nabízí podporu pro více prohlížečů.
- Jinými slovy, škrabka může vykonávat podobné úkoly jako škrábáníping přes Firefox, Internet Explorer také.












