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.

Příprava makra v Excelu před provedením scrapingu datping

Krok 2) Vyberte možnost Visual Basic na pásu karet Vývojář.

Příprava makra v Excelu před provedením scrapingu datping

Krok 3) Vložte nový modul.

Příprava makra v Excelu před provedením scrapingu datping

Krok 4) Inicializujte nový podprogram a pojmenujte jej jako test2.

Sub test2()
End sub

Výsledky v modulu budou následující: –

Příprava makra v Excelu před provedením scrapingu datping

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.

Příprava makra v Excelu před provedením scrapingu datping

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: –

Otevřená Google Chrome Použití VBA

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ě: -

Otevřít web v Google Chrome Použití VBA

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

Otevřít web v Google Chrome Použití VBA

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: –

Seškrabujte informace z webu pomocí VBA

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í.

Seškrabujte informace z webu pomocí VBA

Krok 4) Stisknutím tlačítka pro obnovení získáte níže uvedený výstup

Seškrabujte informace z webu pomocí VBA

Krok 5) Porovnejte výsledky v excelu s výsledky google chrome

Seškrabujte informace z webu pomocí VBA

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é.

Shrňte tento příspěvek takto: