VBA Web Scrapping till Excel
โก Smart sammanfattning
Webbskrapningping med VBA extracts-data frรฅn HTML-webbsidor direkt till Excel, med hjรคlp av Internet Explorer-automation och Microsoft HTML-objektbibliotek fรถr att navigera pรฅ en webbplats, lรคsa en HTML-tabell och skriva de insamlade vรคrdena i kalkylbladsceller.

Vad รคr dataskrapningping?
Dataskrapningping รคr tekniken som hjรคlper extract รถnskad information frรฅn en HTML-webbsida till en lokal fil pรฅ din dator. Normalt รคr den lokala filen en Excel-fil, en Word-fil eller nรฅgon annan Microsoft Office-applikation. Det hjรคlper till att kanalisera viktig information frรฅn webbsidan.
Dataskrapningping blir vรคrdefullt i ett forskningsbaserat projekt som รคr beroende av internet dagligen. Fรถr att illustrera, tรคnk dig en daytrader som kรถr ett Excel-makro fรถr att hรคmta marknadsinformation frรฅn en finanswebbplats till ett Excel-ark med hjรคlp av VBA.
Hur man fรถrbereder Excel-makrot innan dataskrapningping (Internet Explorer)
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.
Sub test() End Sub
Modulen skulle resultera enligt fรถljande:
Steg 5) Gรฅ till alternativet Referens under fliken Verktyg och referera till Microsoft HTML-objektbibliotek och Microsoft Internetkontroller.
Fรถljande filer mรฅste refereras till modulen, eftersom de hjรคlper till att รถppna Internet Explorer och underlรคttar makroskript.
Nu รคr Excel-filen redo att interagera med Internet Explorer. Nรคsta steg รคr att infรถrliva makroskript som underlรคttar dataskrapning.ping i HTML.
Hur man รถppnar Internet Explorer med hjรคlp av Excel VBA
Steg 1) Initiera variabeln i subrutinen enligt nedan.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument
Steg 2) Fรถr att รถppna Internet Explorer med VBA, skriv ie.Visible = True och tryck pรฅ F5.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument ie.Visible = True
Modulen skulle se ut sรฅ hรคr:
Hur man รถppnar en webbplats i Internet Explorer med hjรคlp av VBA
Hรคr รคr stegen fรถr att รถppna en webbplats i Internet Explorer med hjรคlp av VBA.
Steg 1) Nรคr du vรคl kan komma รฅt Internet Explorer med Excel VBA รคr nรคsta steg att komma รฅt en webbplats med VBA. Detta underlรคttas av Navigate-attributet, dรคr URL skickas som dubbla citationstecken. Fรถlj stegen som visas.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE
Steg 2) Tryck pรฅ F5 fรถr att kรถra makrot. Fรถljande webbsida skulle รถppnas som visas.
Nu รคr Excel-makrot redo att utfรถra skrapningenping funktioner. Nรคsta steg visar hur informationen kan extrachรคmtad frรฅn Internet Explorer med hjรคlp av 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.
Steg 1) 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>
Kรคllkoden skulle vara fรถljande:
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document
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 samlar in informationen som en samling.
Samlingen klistras sedan in i Excel. Fรถr att uppnรฅ รถnskat resultat, utfรถr stegen nedan.
Steg 2) Initiera HTML-dokumentet i subrutinen.
Steg 3) Initiera samlingselementet som finns i HTML-dokumentet.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table")
Steg 4) Initiera Excel-arkets celler med hjรคlp av en kapslad loop som visas.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table")
Excel kan initieras med hjรคlp av attributet Range eller attributet Cells i bladet. Fรถr att minska komplexiteten i VBA-skriptet initieras insamlingsdata till attributet Cells i blad 1 i arbetsboken.
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 5) Tryck pรฅ Uppdatera-knappen fรถr att fรฅ utdata nedan.
Steg 6) Jรคmfรถr resultaten i Excel med resultaten i Internet Explorer.











