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.
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.
Steg 2) Välj alternativet Visual Basic under menyfliksområdet Utvecklare.
Steg 3) Sätt in en ny modul.
Steg 4) Initiera en ny subrutin och döp den till test2.
Sub test2() End Sub
Resultatet i modulen skulle bli följande:
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.
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:
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:
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
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:
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.
Steg 4) Tryck på Uppdatera-knappen för att få utdata nedan.
Steg 5) Jämför resultaten i Excel med resultaten i Google Chrome.













