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.

  • ๐Ÿงฐ VBA-automatisering: VBA driver Internet Explorer frรฅn Excel fรถr att ladda en webbsida och lรคsa dess HTML.
  • ๐Ÿ“š Obligatoriska referenser: Microsoft HTML-objektbibliotek och Microsoft Internetkontroller mรฅste refereras i projektet.
  • ๐ŸŒ Navigeringsmetod: Navigate-metoden รถppnar ett mรฅl URL, och koden vรคntar tills sidan รคr klar.
  • ๐Ÿงฑ HTML-tabellparsning: getElementsByTagName lรคser tabellen sรฅ att dess rader och celler kan loopas igenom.
  • ๐Ÿ“Š Skriv till celler: De insamlade vรคrdena skrivs in i kalkylbladsceller, ofta bakom en Uppdatera-knapp.
  • ๐Ÿค– AI-hjรคlp: AI-verktyg och andrepiloter genererar nu scrabbping kod och anpassa selektorer nรคr layouter รคndras.

VBA Web Scrapping till Excel

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.

Fรถrbered Excel-makro fรถre dataskrapningping anvรคnder Internet Explorer

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

Fรถrbered Excel-makro fรถre dataskrapningping anvรคnder Internet Explorer

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

Fรถrbered Excel-makro fรถre dataskrapningping anvรคnder Internet Explorer

Steg 4) Initiera en ny subrutin.

Sub test()
End Sub

Modulen skulle resultera enligt fรถljande:

Fรถrbered Excel-makro fรถre dataskrapningping anvรคnder Internet Explorer

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.

Hรคnvisning Microsoft HTML-objektbibliotek och internetkontroller

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:

ร–ppna Internet Explorer med Excel VBA

ร–ppna Internet Explorer med Excel VBA

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.

ร–ppna webbplatsen i Internet Explorer med hjรคlp av VBA

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.

Skrapa information frรฅn webbplatsen med VBA

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

Skrapa information frรฅn webbplatsen med VBA

Steg 6) Jรคmfรถr resultaten i Excel med resultaten i Internet Explorer.

Skrapa information frรฅn webbplatsen med VBA

Vanliga frรฅgor

Tvรฅ referenser behรถvs i VBA-editorn under Verktyg, Referenser: Microsoft HTML-objektbibliotek och Microsoft Internetkontroller. De lรฅter VBA รถppna Internet Explorer, navigera till en URLoch lรคs sidans HTML-element.

Det beror pรฅ webbplatsen. Mรฅnga webbplatser begrรคnsar automatiserad scraping.ping i deras anvรคndarvillkor, sรฅ granska dem fรถrst och undvik att samla in personliga eller upphovsrรคttsskyddade uppgifter. Scraping offentliga, tillรฅtna data fรถr personlig analys รคr generellt sett med lรคgre risk.

Internet Explorer รคr fรถrรฅldrad, sรฅ moderna projekt anvรคnder Selenium VBA tillvรคgagรฅngssรคtt, som driver Chrome, Firefox, eller Edge. Selenium erbjuder stรถd fรถr flera webblรคsare och mer pรฅlitlig elementlokalisering fรถr befintliga webbplatser.

Ja. AI-drivna skrapare och andrepiloter kan identifiera datafรคlt, generera exempeltractionkod och anpassa sig automatiskt till layoutรคndringar. Maskininlรคrningsmodeller analyserar รคven ostrukturerade sidor, vilket minskar den manuella anstrรคngningen med att skriva och underhรฅlla skript.ping skript.

AI anvรคnder datorseende och naturlig sprรฅkbehandling fรถr att kรคnna igen tabeller, priser och text pรฅ en sida, รคven utan fasta vรคljare. Detta intelligenta extraction gรถr scratchping mer motstรฅndskraftig nรคr en webbplats รคndrar sin struktur.

Sammanfatta detta inlรคgg med: