Selenium VBA Excel-opplæring (Chrome Web Scrap)ping)

⚡ Smart oppsummering

Selenium VBA i Excel automatiserer Google Chrome å skrape data fra HTML-nettsider ved hjelp av Selenium Skriv bibliotek- og WebDriver-metoder for å åpne et nettsted, finne tabellelementer etter klasse og tagg, og skriv resultatene inn i regnearkceller.

  • 🧰 Selenium WebDriver: VBA bruker Selenium typebibliotek for å kjøre Google Chrome for scraping.
  • 📚 Typebibliotek: Ocuco Selenium Typebiblioteket må refereres til før WebDriver-objekter kan deklareres.
  • 🚀 Start og få: Start-metoden åpner Chrome, og Get-metoden laster inn målnettstedet URL.
  • 🔎 Elementlokalisering: FindElementByClass og FindElementsByTag finner tabelloverskriften og datacellene.
  • 📊 Skriv til celler: En nestet For Each-løkke skriver overskrifts- og radverdier inn i regnearkceller.
  • 🤖 AI-hjelp: AI-copiloter hjelper med å skrive, feilsøke og vedlikeholde Selenium VBA-skript etter hvert som nettsteder endres.

Selenium VBA Excel-opplæring

Hva er dataskrapingping Ved hjelp av Selenium?

Selenium er et automatiseringsverktøy som forenkler scrapingping informasjon fra HTML-nettsider, utføre webskrapingping med Google ChromeI Excel, Selenium typebiblioteket lar VBA kjøre en ekte nettleser i stedet for den utdaterte Internet Explorer-motoren.

Slik klargjør du Excel-makroen før dataskrapingping Ved hjelp av Selenium

Det er visse forutsetninger som må utføres på Excel-makrofilen før dataskrapingen starter.ping prosess.

Disse forutsetningene er som følger:

Trinn 1) Åpne en Excel-basert makro og få tilgang til utvikleralternativet i Excel.

Klargjør Excel-makro før dataskrapingping ved hjelp av Selenium

Trinn 2) Velg Visual Basic-alternativet under Utvikler-båndet.

Klargjør Excel-makro før dataskrapingping ved hjelp av Selenium

Trinn 3) Sett inn en ny modul.

Klargjør Excel-makro før dataskrapingping ved hjelp av Selenium

Trinn 4) Initialiser en ny subrutine og kall den test2.

Sub test2()
End Sub

Resultatet i modulen ville bli som følger:

Klargjør Excel-makro før dataskrapingping ved hjelp av Selenium

Trinn 5) Gå til Referanse-alternativet under Verktøy-fanen og referer til Selenium Typebibliotek. Dette biblioteket hjelper med å åpne Google Chrome og forenkler makroskripting.

Referanse Selenium Typebibliotek i Excel VBA

Nå er Excel-filen klar til å samhandle med nettleseren. Neste trinn er å innlemme et makroskript som forenkler dataskraping.ping i HTML.

Hvordan åpne Google Chrome Bruker VBA

Her er trinnene for å åpne Google Chrome ved hjelp av VBA.

Trinn 1) Deklarer og initialiser variablene i subrutinen som vist nedenfor.

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

Trinn 2) Å åpne Google Chrome ved hjelp av Selenium og VBA, skriv driver. Start «Chrome» og trykk F5.

Følgende vil 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

Modulen ville resultere som følger:

Open Google Chrome bruker VBA

Slik åpner du et nettsted i Google Chrome Bruker VBA

Når du har tilgang Google Chrome Ved bruk av VBA er neste trinn å få tilgang til et nettsted ved hjelp av VBA. Dette gjøres mulig med Get-funksjonen, der URL sendes som doble anførselstegn.

Modulen ville se slik ut:

Åpne nettsiden i Google Chrome bruker VBA

Trykk F5 for å kjøre makroen. Følgende nettside åpnes 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

Åpne nettsiden i Google Chrome bruker VBA

Nå er Excel-makroen klar til å utføre skrapingenping oppgaver. Neste trinn viser hvordan informasjonen kan bli uttrykttracved å søke Selenium og VBA.

Slik skraper du informasjon fra et nettsted ved hjelp av VBA

Anta at daytraderen ønsker å få tilgang til dataene fra nettstedet daglig. Hver gang daytraderen klikker på knappen, skal den automatisk hente markedsdataene inn i Excel.

Fra nettsiden ovenfor er det nødvendig å inspisere et element og observere hvordan dataene er strukturert. Få tilgang til kildekoden til HTML-koden nedenfor ved å trykke 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 strukturert som én enkelt HTML-tabell. For å hente alle dataene fra HTML-tabellen må du derfor designe en makro som henter headerinformasjonen og de tilsvarende dataene som er knyttet til tabellen. Utfør oppgavene nedenfor.

Trinn 1) Formuler en For-løkke som går gjennom HTML-headerinformasjonen som en samling. Selenium Driveren finner headerinformasjonen ved hjelp av metodene 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

Trinn 2) Deretter Selenium Driveren finner tabelldataene ved hjelp av en lignende fremgangsmåte. 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 hjelp av Range-attributtet eller Cells-attributtet i arket. For å redusere kompleksiteten til VBA-skriptet initialiseres samlingsdataene til Cells-attributtet i ark 2 i arbeidsboken. Text-attributtet bidrar til å plassere teksten under en 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-modulen ville se slik ut:

Skrap informasjon fra nettstedet ved å bruke VBA

Trinn 3) Når makroskriptet er klart, tilordner du subrutinen til en Excel-knapp og avslutter VBA-modulen. Merk knappen som Oppdater eller et annet passende navn. I dette eksemplet er knappen merket Oppdater.

Skrap informasjon fra nettstedet ved å bruke VBA

Trinn 4) Trykk på Oppdater-knappen for å få resultatet nedenfor.

Skrap informasjon fra nettstedet ved å bruke VBA

Trinn 5) Sammenlign resultatene i Excel med resultatene i Google Chrome.

Skrap informasjon fra nettstedet ved å bruke VBA

Spørsmål og svar

Excel trenger Selenium Typebibliotek, installert gjennom SeleniumGrunnleggende, referert til i VBA-editoren under Verktøy, Referanser. Dette biblioteket inneholder WebDriver-objektet og metoder som Start, Get og FindElementByClass som brukes til å automatisere nettleseren.

Selenium VBA kan kjøre Google Chrome, Mozilla Firefox, Microsoft Edgeog Internet Explorer. Chrome er det vanligste valget. Hver nettleser trenger sin matchende WebDriver, og den samme VBA-koden kan bytte nettleser med minimale endringer.

Ocuco Internet Explorer-metoden bruker HTML-objektbiblioteket og bare IE, som er utdatert. Selenium driver moderne nettlesere som Chrome og tilbyr støtte for flere nettlesere og mer pålitelig elementplassering.

Ja. AI-copiloter kan generere Selenium VBA-kode fra en beskrivelse, foreslå elementlokalisering og hjelpe med feilsøking. Når et nettsted endres, kan AI foreslå oppdaterte selektorer, noe som reduserer den manuelle innsatsen med å vedlikeholde scrapping.ping makroer.

AI legger til intelligent elementdeteksjon, kommandoer i naturlig språk og selvreparerende lokaliseringsverktøy til nettleserautomatisering. Disse maskinlæringsfunksjonene lar verktøy tilpasse seg layoutendringer automatisk, noe som gjør skraping mulig.ping og testing er mer robust enn faste, hardkodede skript.

Oppsummer dette innlegget med: