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.

  • ๐Ÿงฐ Selenium WebDriver: VBA anvรคnder Selenium typbibliotek fรถr att kรถra Google Chrome fรถr scrapping.
  • ๐Ÿ“š Typbibliotek: Ocuco-landskapet Selenium typbiblioteket mรฅste refereras innan WebDriver-objekt kan deklareras.
  • ๐Ÿš€ Bรถrja och fรฅ: Start-metoden รถppnar Chrome och Get-metoden laddar mรฅlwebbplatsen URL.
  • ๐Ÿ”Ž Elementlokalisering: FindElementByClass och FindElementsByTag lokaliserar tabellrubriken och datacellerna.
  • ๐Ÿ“Š Skriv till celler: En kapslad For Each-loop skriver rubrik- och radvรคrden i kalkylbladets celler.
  • ๐Ÿค– AI-hjรคlp: AI-copiloter hjรคlper till att skriva, felsรถka och underhรฅlla Selenium VBA-skript nรคr webbplatser รคndras.

Selenium VBA Excel-handledning

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.

Fรถrbered Excel-makro fรถre dataskrapningping med hjรคlp av Selenium

Steg 2) Vรคlj alternativet Visual Basic under menyfliksomrรฅdet Utvecklare.

Fรถrbered Excel-makro fรถre dataskrapningping med hjรคlp av Selenium

Steg 3) Sรคtt in en ny modul.

Fรถrbered Excel-makro fรถre dataskrapningping med hjรคlp av Selenium

Steg 4) Initiera en ny subrutin och dรถp den till test2.

Sub test2()
End Sub

Resultatet i modulen skulle bli fรถljande:

Fรถrbered Excel-makro fรถre dataskrapningping med hjรคlp av Selenium

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.

Hรคnvisning Selenium Typbibliotek i Excel VBA

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:

ร–ppet Google Chrome anvรคnder VBA

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:

ร–ppna webbplatsen i Google Chrome anvรคnder VBA

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

ร–ppna webbplatsen i Google Chrome anvรคnder VBA

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:

Skrapa information frรฅn webbplatsen med VBA

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.

Skrapa information frรฅn webbplatsen med VBA

Steg 4) Tryck pรฅ Uppdatera-knappen fรถr att fรฅ utdata nedan.

Skrapa information frรฅn webbplatsen med VBA

Steg 5) Jรคmfรถr resultaten i Excel med resultaten i Google Chrome.

Skrapa information frรฅn webbplatsen med VBA

Vanliga frรฅgor

Excel behรถver Selenium Typbibliotek, installerat via SeleniumGrundlรคggande, refererad i VBA-editorn under Verktyg, Referenser. Detta bibliotek tillhandahรฅller WebDriver-objektet och metoder som Start, Get och FindElementByClass som anvรคnds fรถr att automatisera webblรคsaren.

Selenium VBA kan kรถra Google Chrome, Mozilla Firefox, Microsoft Edgeoch Internet Explorer. Chrome รคr det vanligaste valet. Varje webblรคsare behรถver sin matchande webbdrivrutin, och samma VBA-kod kan byta webblรคsare med minimala fรถrรคndringar.

Ocuco-landskapet Internet Explorer-metoden anvรคnder HTML-objektbiblioteket och endast IE, som รคr fรถrรฅldrad. Selenium driver moderna webblรคsare som Chrome och erbjuder stรถd fรถr flera webblรคsare och mer tillfรถrlitlig elementlokalisering.

Ja. AI-copiloter kan generera Selenium VBA-kod frรฅn en beskrivning, fรถreslรฅ elementsรถkare och hjรคlpa till att felsรถka fel. Nรคr en webbplats รคndras kan AI fรถreslรฅ uppdaterade selektorer, vilket minskar den manuella arbetsinsatsen fรถr att underhรฅlla scraping.ping makron.

AI lรคgger till intelligent elementdetektering, kommandon i naturligt sprรฅk och sjรคlvlรคkande lokalisering till webblรคsarautomation. Dessa maskininlรคrningsfunktioner lรฅter verktyg anpassa sig automatiskt till layoutรคndringar, vilket gรถr skrapningping och testning รคr mer motstรฅndskraftig รคn fasta, hรฅrdkodade skript.

Sammanfatta detta inlรคgg med: