Selenium VBA Excel-handledning (Chrome Web Scrap)ping)

⚡ Smart sammanfattning

Selenium VBA i Excel automatiserar Google Chrome att skrapa data från HTML-webbsidor med hjälp av Selenium Använd biblioteks- och WebDriver-metoder för att öppna en webbplats, hitta tabellelement efter klass och tagg och skriva resultaten i kalkylbladsceller.

  • 🧰 Selenium WebDriver: VBA använder Selenium typbibliotek för att köra Google Chrome för scrapping.
  • 📚 Typbibliotek: Ocuco-landskapet Selenium typbiblioteket måste refereras innan WebDriver-objekt kan deklareras.
  • 🚀 Börja och få: Start-metoden öppnar Chrome och Get-metoden laddar målwebbplatsen URL.
  • 🔎 Elementlokalisering: FindElementByClass och FindElementsByTag lokaliserar tabellrubriken och datacellerna.
  • 📊 Skriv till celler: En kapslad For Each-loop skriver rubrik- och radvärden i kalkylbladets celler.
  • 🤖 AI-hjälp: AI-copiloter hjälper till att skriva, felsöka och underhålla Selenium VBA-skript när webbplatser ändras.

Selenium VBA Excel-handledning

Vad är dataskrapningping Använda Selenium?

Selenium är ett automatiseringsverktyg som underlättar scrapingping information från HTML-webbsidor, utföra webbscrapingping med Google ChromeI Excel, den Selenium type-biblioteket låter VBA köra en riktig webbläsare istället för den föråldrade Internet Explorer-motorn.

Hur man förbereder Excel-makrot innan dataskrapningping Använda Selenium

Det finns vissa förutsättningar som måste uppfyllas på Excel-makrofilen innan dataskrapningen påbörjas.ping processen.

Dessa förutsättningar är följande:

Steg 1) Öppna ett Excel-baserat makro och öppna alternativet Utvecklare i Excel.

Förbered Excel-makro före dataskrapningping med hjälp av Selenium

Steg 2) Välj alternativet Visual Basic under menyfliksområdet Utvecklare.

Förbered Excel-makro före dataskrapningping med hjälp av Selenium

Steg 3) Sätt in en ny modul.

Förbered Excel-makro före dataskrapningping med hjälp av Selenium

Steg 4) Initiera en ny subrutin och döp den till test2.

Sub test2()
End Sub

Resultatet i modulen skulle bli följande:

Förbered Excel-makro före dataskrapningping med hjälp av Selenium

Steg 5) Gå till alternativet Referens under fliken Verktyg och referera till Selenium Typbibliotek. Det här biblioteket hjälper till att öppna Google Chrome och underlättar makroskriptning.

Hänvisning Selenium Typbibliotek i Excel VBA

Nu är Excel-filen redo att interagera med webbläsaren. Nästa steg är att integrera ett makroskript som underlättar dataskrapning.ping i HTML.

Hur man öppnar Google Chrome Använder VBA

Här är stegen för att öppna Google Chrome med hjälp av VBA.

Steg 1) Deklarera och initiera variablerna i subrutinen enligt nedan.

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

Steg 2) Att öppna Google Chrome med hjälp av Selenium och VBA, skriv drivrutinen. Starta "Chrome" och tryck på F5.

Följande skulle vara koden.

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

Modulen skulle resultera enligt följande:

Öppet Google Chrome använder VBA

Hur man öppnar en webbplats i Google Chrome Använder VBA

När du väl kan komma åt Google Chrome Med VBA är nästa steg att komma åt en webbplats med hjälp av VBA. Detta underlättas av Get-funktionen, där URL skickas som dubbla citationstecken.

Modulen skulle se ut så här:

Öppna webbplatsen i Google Chrome använder VBA

Tryck F5 för att köra makrot. Följande webbsida skulle öppnas i Google Chrome som visas.

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

Öppna webbplatsen i Google Chrome använder VBA

Nu är Excel-makrot redo att utföra skrapningenping uppgifter. Nästa steg visar hur informationen kan extracgenom att tillämpa Selenium och VBA.

Hur man skrapar information från en webbplats med hjälp av VBA

Anta att daytradern vill komma åt data från webbplatsen dagligen. Varje gång daytradern klickar på knappen ska den automatiskt hämta marknadsdata till Excel.

Från ovanstående webbplats är det nödvändigt att inspektera ett element och observera hur informationen är strukturerad. Få åtkomst till källkoden för HTML-koden nedan genom att trycka på Ctrl + Shift + Jag.

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

Som du kan se är informationen strukturerad som en enda HTML-tabell. För att hämta all information från HTML-tabellen måste du därför utforma ett makro som hämtar rubrikinformationen och motsvarande data som är associerade med tabellen. Utför uppgifterna nedan.

Steg 1) Formulera en For-loop som går igenom HTML-headerinformationen som en samling. Selenium Drivrutinen lokaliserar rubrikinformationen med hjälp av metoderna FindElementByClass() och FindElementByTag(), som visas.

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

Steg 2) Därefter Selenium Drivrutinen lokaliserar tabelldata med en liknande metod. Skriv följande kod:

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 kan initieras med hjälp av attributet Range eller attributet Cells i arket. För att minska komplexiteten i VBA-skriptet initieras insamlingsdata till attributet Cells i Ark 2 i arbetsboken. Attributet Text hjälper till att placera texten under en HTML-tagg.

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

VBA-modulen skulle se ut så här:

Skrapa information från webbplatsen med VBA

Steg 3) När makroskriptet är klart, tilldela subrutinen till en Excel-knapp och avsluta VBA-modulen. Märk knappen som Uppdatera eller något annat lämpligt namn. I det här exemplet är knappen märkt Uppdatera.

Skrapa information från webbplatsen med VBA

Steg 4) Tryck på Uppdatera-knappen för att få utdata nedan.

Skrapa information från webbplatsen med VBA

Steg 5) Jämför resultaten i Excel med resultaten i Google Chrome.

Skrapa information från webbplatsen med VBA

Vanliga frågor

Excel behöver Selenium Typbibliotek, installerat via SeleniumGrundläggande, refererad i VBA-editorn under Verktyg, Referenser. Detta bibliotek tillhandahåller WebDriver-objektet och metoder som Start, Get och FindElementByClass som används för att automatisera webbläsaren.

Selenium VBA kan köra Google Chrome, Mozilla Firefox, Microsoft Edgeoch Internet Explorer. Chrome är det vanligaste valet. Varje webbläsare behöver sin matchande webbdrivrutin, och samma VBA-kod kan byta webbläsare med minimala förändringar.

Ocuco-landskapet Internet Explorer-metoden använder HTML-objektbiblioteket och endast IE, som är föråldrad. Selenium driver moderna webbläsare som Chrome och erbjuder stöd för flera webbläsare och mer tillförlitlig elementlokalisering.

Ja. AI-copiloter kan generera Selenium VBA-kod från en beskrivning, föreslå elementsökare och hjälpa till att felsöka fel. När en webbplats ändras kan AI föreslå uppdaterade selektorer, vilket minskar den manuella arbetsinsatsen för att underhålla scraping.ping makron.

AI lägger till intelligent elementdetektering, kommandon i naturligt språk och självläkande lokalisering till webbläsarautomation. Dessa maskininlärningsfunktioner låter verktyg anpassa sig automatiskt till layoutändringar, vilket gör skrapningping och testning är mer motståndskraftig än fasta, hårdkodade skript.

Sammanfatta detta inlägg med: