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.












