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.

  • ๐Ÿงฐ Selenium WebDriver: VBA bruger Selenium typebibliotek for at kรธre Google Chrome til scraping.
  • ๐Ÿ“š Typebibliotek: Selenium Typebiblioteket skal refereres til, fรธr WebDriver-objekter kan deklareres.
  • ๐Ÿš€ Start og fรฅ: Start-metoden รฅbner Chrome, og Get-metoden indlรฆser mรฅlwebstedet URL.
  • ๐Ÿ”Ž Elementlokalisering: FindElementByClass og FindElementsByTag finder tabeloverskriften og datacellerne.
  • ๐Ÿ“Š Skriv til celler: En indlejret For Each-lรธkke skriver header- og rรฆkkevรฆrdier ind i regnearksceller.
  • ๐Ÿค– AI Assistance: AI-copiloter hjรฆlper med at skrive, fejlfinde og vedligeholde Selenium VBA-scripts efterhรฅnden som websteder รฆndres.

Selenium VBA Excel-vejledning

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.

Forbered Excel-makro fรธr dataskrabningping ved brug af Selenium

Trin 2) Vรฆlg Visual Basic-indstillingen under Udvikler-bรฅndet.

Forbered Excel-makro fรธr dataskrabningping ved brug af Selenium

Trin 3) Indsรฆt et nyt modul.

Forbered Excel-makro fรธr dataskrabningping ved brug af Selenium

Trin 4) Initialiser en ny subrutine og navngiv den test2.

Sub test2()
End Sub

Resultatet i modulet ville vรฆre som fรธlger:

Forbered Excel-makro fรธr dataskrabningping ved brug af Selenium

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.

Henvisning Selenium Typebibliotek i Excel VBA

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:

ร…bne Google Chrome ved hjรฆlp af VBA

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:

ร…bn hjemmeside i Google Chrome ved hjรฆlp af VBA

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

ร…bn hjemmeside i Google Chrome ved hjรฆlp af VBA

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:

Skrab oplysninger fra websted ved hjรฆlp af VBA

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.

Skrab oplysninger fra websted ved hjรฆlp af VBA

Trin 4) Tryk pรฅ Opdater-knappen for at fรฅ nedenstรฅende output.

Skrab oplysninger fra websted ved hjรฆlp af VBA

Trin 5) Sammenlign resultaterne i Excel med resultaterne i Google Chrome.

Skrab oplysninger fra websted ved hjรฆlp af VBA

Ofte Stillede Spรธrgsmรฅl

Excel har brug for Selenium Typebibliotek, installeret via SeleniumGrundlรฆggende, refereret i VBA-editoren under Vรฆrktรธjer, Referencer. Dette bibliotek indeholder WebDriver-objektet og metoder som Start, Get og FindElementByClass, der bruges til at automatisere browseren.

Selenium VBA kan kรธre Google Chrome, Mozilla Firefox, Microsoft Edgeog Internet Explorer. Chrome er det mest almindelige valg. Hver browser skal bruge sin egen matchende webdriver, og den samme VBA-kode kan skifte browser med minimale รฆndringer.

Internet Explorer-metoden bruger HTML-objektbiblioteket og kun IE, som er udfaset. Selenium understรธtter moderne browsere som Chrome og tilbyder understรธttelse af flere browsere samt mere pรฅlidelig elementplacering.

Ja. AI-copiloter kan generere Selenium VBA-kode fra en beskrivelse, foreslรฅ elementplaceringer og hjรฆlpe med at fejlsรธge. Nรฅr et websted รฆndres, kan AI foreslรฅ opdaterede selektorer, hvilket reducerer den manuelle indsats for at vedligeholde scrapping.ping makroer.

AI tilfรธjer intelligent elementdetektion, kommandoer i naturligt sprog og selvreparerende lokaliseringsvรฆrktรธjer til browserautomatisering. Disse maskinlรฆringsfunktioner gรธr det muligt for vรฆrktรธjer at tilpasse sig layoutรฆndringer automatisk, hvilket gรธr det nemt at skrive.ping og testning er mere robust end faste, hardcodede scripts.

Opsummer dette indlรฆg med: