Selenium Výukový program VBA pro Excel (Chrome Web Scraping)

⚡ Chytré shrnutí

Selenium VBA v Excelu automatizuje Google Chrome pro získávání dat z webových stránek HTML pomocí Selenium knihovnu typů a metody WebDriver pro otevření webu, vyhledání prvků tabulky podle třídy a tagu a zápis výsledků do buněk listu.

  • 🧰 Selenium WebDriver: VBA používá Selenium knihovna typů pro řízení Google Chrome pro škrábanceping.
  • ???? Knihovna typů: Jedno Selenium Před deklarací objektů WebDriver je nutné odkazovat na knihovnu typů.
  • ???? Začněte a získejte: Metoda Start otevře Chrome a metoda Get načte cílovou webovou stránku. URL.
  • 🔎 Lokátory prvků: Funkce FindElementByClass a FindElementsByTag vyhledávají záhlaví tabulky a datové buňky.
  • 📊 Zapis do buněk: Vnořená smyčka For Each zapisuje hodnoty záhlaví a řádků do buněk listu.
  • 🤖 Asistence AI: Kopiloti s umělou inteligencí pomáhají s psaním, laděním a údržbou Selenium Skripty VBA při změně webů.

Selenium Výukový program pro Excel v Excelu

Co je to scraping datping Použití Selenium?

Selenium je automatizační nástroj, který usnadňuje scrapingping informace z webových stránek HTML, provádění webového scrapinguping s Google ChromeV Excelu Selenium Knihovna typů umožňuje VBA spustit skutečný prohlížeč namísto zastaralého enginu Internet Exploreru.

Jak připravit makro v Excelu před smazáním datping Použití Selenium

Před zahájením scrapingu dat je nutné s makrom aplikace Excel splnit určité předpoklady.ping proces.

Tyto předpoklady jsou následující:

Krok 1) Otevřete makro založené na Excelu a přejděte na možnost Vývojář v Excelu.

Příprava makra v Excelu před smazáním datping použitím Selenium

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

Příprava makra v Excelu před smazáním datping použitím Selenium

Krok 3) Vložte nový modul.

Příprava makra v Excelu před smazáním datping použitím Selenium

Krok 4) Inicializujte nový podprogram a pojmenujte ho test2.

Sub test2()
End Sub

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

Příprava makra v Excelu před smazáním datping použitím Selenium

Krok 5) Otevřete možnost Reference na kartě Nástroje a vyhledejte odkaz na Selenium Knihovna typů. Tato knihovna pomáhá otevírat Google Chrome a usnadňuje skriptování maker.

Odkaz Selenium Knihovna typů v Excelu VBA

Soubor Excel je nyní připraven k interakci s prohlížečem. Dalším krokem je začlenění makro skriptu, který usnadňuje scrapování dat.ping v HTML.

Jak otevřít Google Chrome Použití VBA

Zde jsou kroky k otevření Google Chrome pomocí VBA.

Krok 1) Deklarujte a inicializujte proměnné v podprogramu, jak je znázorněno níže.

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer

Krok 2) Otevřít Google Chrome použitím Selenium a VBA, napište ovladač. Spusťte „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 by vypadal takto:

Otevřená Google Chrome pomocí VBA

Jak otevřít webovou stránku v Google Chrome Použití VBA

Jakmile budete mít přístup Google Chrome pomocí VBA je dalším krokem přístup k webové stránce pomocí VBA. To je usnadněno funkcí Get, kde URL se předává jako dvojité uvozovky.

Modul by vypadal takto:

Otevřít webovou stránku v Google Chrome pomocí VBA

Stisknutím klávesy F5 spusťte makro. Otevře se následující webová stránka. Google Chrome jak je znázorněno.

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 webovou stránku v Google Chrome pomocí VBA

Nyní je makro aplikace Excel připraveno k provedení scrapingu.ping úkoly. Další krok ukazuje, jak lze informace exportovattracted aplikací Selenium a VBA.

Jak získat informace z webových stránek pomocí VBA

Předpokládejme, že denní obchodník chce denně přistupovat k datům z webových stránek. Pokaždé, když klikne na tlačítko, měla by se tržní data automaticky načíst do Excelu.

Z výše uvedené webové stránky je nutné prozkoumat prvek a sledovat, jak jsou data strukturována. Zdrojový kód HTML níže naleznete stisknutím kláves Ctrl + Shift + Já.

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

Jak vidíte, data jsou strukturována jako jedna HTML tabulka. Chcete-li tedy načíst všechna data z HTML tabulky, musíte navrhnout makro, které načte informace ze záhlaví a odpovídající data spojená s tabulkou. Proveďte níže uvedené úkoly.

Krok 1) Vytvořte smyčku For, která prochází informacemi v záhlaví HTML jako kolekcí. Selenium Ovladač vyhledá informace v záhlaví pomocí metod FindElementByClass() a FindElementByTag(), jak je znázorněno.

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, Selenium Ovladač vyhledá data tabulky pomocí podobného přístupu. Napište 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

Excel lze inicializovat pomocí atributu Range nebo atributu Cells listu. Pro zjednodušení skriptu VBA jsou data kolekce inicializována atributem Cells listu 2 v sešitu. Atribut Text pomáhá umístit text pod tag 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řiřaďte podprogram tlačítku Excelu a ukončete modul VBA. Tlačítko pojmenujte jako Obnovit nebo jiným vhodným názvem. V tomto příkladu je tlačítko označeno Obnovit.

Seškrabujte informace z webu pomocí VBA

Krok 4) Stiskněte tlačítko Obnovit pro zobrazení níže uvedeného výstupu.

Seškrabujte informace z webu pomocí VBA

Krok 5) Porovnejte výsledky v Excelu s výsledky v Google Chrome.

Seškrabujte informace z webu pomocí VBA

Nejčastější dotazy

Excel potřebuje Selenium Knihovna typů, instalovaná prostřednictvím SeleniumZákladní, odkazováno v editoru VBA v sekci Nástroje, Odkazy. Tato knihovna poskytuje objekt WebDriver a metody, jako například Start, Get a FindElementByClass, které se používají k automatizaci prohlížeče.

Selenium VBA umí řídit Google Chrome, Mozilla Firefox, Microsoft Edgea Internet Explorer. Chrome je nejběžnější volbou. Každý prohlížeč potřebuje svůj odpovídající WebDriver a stejný kód VBA může přepínat mezi prohlížeči s minimálními změnami.

Jedno Metoda Internet Exploreru používá knihovnu objektů HTML a pouze IE, který je zastaralý. Selenium podporuje moderní prohlížeče, jako je Chrome, a nabízí podporu pro více prohlížečů a spolehlivější umístění prvků.

Ano. Kopiloti s umělou inteligencí mohou generovat Selenium Kód VBA z popisu, navrhovat lokátory prvků a pomáhat s laděním chyb. Když se webová stránka změní, umělá inteligence může navrhnout aktualizované selektory, čímž se snižuje manuální úsilí spojené s údržbou scraping makra.

Umělá inteligence přidává do automatizace prohlížeče inteligentní detekci prvků, příkazy v přirozeném jazyce a samoopravné lokátory. Tyto funkce strojového učení umožňují nástrojům automaticky se přizpůsobovat změnám rozvržení, což usnadňuje scraping.ping a testování odolnější než fixní, pevně zakódované skripty.

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