Selenium VBA Excel-vejledning (Chrome Web Scrap)ping)
โก Smart opsummering
Selenium VBA i Excel automatiserer Google Chrome at skrabe data fra HTML-websider ved hjรฆlp af Selenium Brug biblioteks- og WebDriver-metoder til at รฅbne et websted, finde tabelelementer efter klasse og tag og skrive resultaterne i regnearksceller.

Hvad er data scrapingping Ved brug af Selenium?
Selenium er et automatiseringsvรฆrktรธj, der letter scrapingping information fra HTML-websider, udfรธrelse af webscrapingping med Google ChromeI Excel, den Selenium typebiblioteket lader VBA kรธre en rigtig browser i stedet for den forรฆldede Internet Explorer-motor.
Sรฅdan forbereder du Excel-makroen fรธr dataskrabningping Ved brug af Selenium
Der er visse forudsรฆtninger, der skal udfรธres pรฅ Excel-makrofilen, fรธr dataskrabningen pรฅbegyndes.ping proces.
Disse forudsรฆtninger er som fรธlger:
Trin 1) ร bn en Excel-baseret makro, og รฅbn Udvikler-indstillingen i Excel.
Trin 2) Vรฆlg Visual Basic-indstillingen under Udvikler-bรฅndet.
Trin 3) Indsรฆt et nyt modul.
Trin 4) Initialiser en ny subrutine og navngiv den test2.
Sub test2() End Sub
Resultatet i modulet ville vรฆre som fรธlger:
Trin 5) Fรฅ adgang til referencefunktionen under fanen Vรฆrktรธjer, og se pรฅ Selenium Typebibliotek. Dette bibliotek hjรฆlper med at รฅbne Google Chrome og letter makroscripting.
Nu er Excel-filen klar til at interagere med browseren. Nรฆste trin er at integrere et makroscript, der letter datascratching.ping i HTML.
Sรฅdan รฅbnes Google Chrome Bruger VBA
Her er trinene til at รฅbne Google Chrome ved hjรฆlp af VBA.
Trin 1) Deklarer og initialiser variablerne i subrutinen som vist nedenfor.
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer
Trin 2) At รฅbne Google Chrome ved brug af Selenium og VBA, skriv driver. Start โChromeโ og tryk pรฅ F5.
Fรธlgende ville vรฆre 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
Modulet ville resultere som fรธlger:
Sรฅdan รฅbner du en hjemmeside i Google Chrome Bruger VBA
Nรฅr du har adgang Google Chrome Ved brug af VBA er det nรฆste trin at tilgรฅ et websted ved hjรฆlp af VBA. Dette gรธres lettere ved hjรฆlp af Get-funktionen, hvor URL sendes som dobbelte anfรธrselstegn.
Modulet ville se sรฅledes ud:
Tryk pรฅ F5 for at udfรธre makroen. Fรธlgende webside รฅbnes i Google Chrome som vist.
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 er Excel-makroen klar til at udfรธre scratchenping opgaver. Det nรฆste trin viser, hvordan informationen kan udvekslestracved at anvende Selenium og VBA.
Sรฅdan skraber du information fra et websted ved hjรฆlp af VBA
Antag, at daytraderen รธnsker at tilgรฅ dataene fra hjemmesiden dagligt. Hver gang daytraderen klikker pรฅ knappen, burde den automatisk hente markedsdataene ind i Excel.
Fra ovenstรฅende hjemmeside er det nรธdvendigt at inspicere et element og observere, hvordan dataene er struktureret. Fรฅ adgang til kildekoden til HTML-koden nedenfor ved at trykke pรฅ Ctrl + Shift + Jeg.
<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, er dataene struktureret som en enkelt HTML-tabel. For at hente alle dataene fra HTML-tabellen skal du derfor designe en makro, der henter headeroplysningerne og de tilsvarende data, der er knyttet til tabellen. Udfรธr opgaverne nedenfor.
Trin 1) Formuler en For-lรธkke, der kรธrer gennem HTML-headerinformationen som en samling. Selenium Driveren finder headeroplysningerne ved hjรฆlp af metoderne FindElementByClass() og FindElementByTag(), som vist.
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
Trin 2) Dernรฆst Selenium Driveren finder tabeldataene ved hjรฆlp af en lignende fremgangsmรฅde. Skriv fรธlgende kode:
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 initialiseres ved hjรฆlp af attributten Range eller attributten Cells i arket. For at reducere kompleksiteten af โโVBA-scriptet initialiseres samlingsdataene til attributten Cells i ark 2 i projektmappen. Attributten Text hjรฆlper med at placere teksten under et HTML-tag.
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-modulet ville se sรฅledes ud:
Trin 3) Nรฅr makroskriptet er klar, skal du tildele subrutinen til en Excel-knap og afslutte VBA-modulet. Navngiv knappen som Opdater eller et andet passende navn. I dette eksempel er knappen mรฆrket Opdater.
Trin 4) Tryk pรฅ Opdater-knappen for at fรฅ nedenstรฅende output.
Trin 5) Sammenlign resultaterne i Excel med resultaterne i Google Chrome.












