Webbskrapning med VBA
Vad är Dataskrapning?
dataskrapning är tekniken som hjälper till att extrahera önskad information från en HTML-webbsida till en lokal fil som finns i din lokala maskin. Normalt kan en lokal fil motsvara en excel-fil, word-fil eller att säga något Microsoft office-program. Det hjälper till att kanalisera kritisk information från webbsidan.
dataskrapningen blir enkel när man arbetar med ett forskningsbaserat projekt dagligen, och ett sådant projekt är helt beroende av internet och webbplats. För att ytterligare illustrera ämnet, låt oss ta exemplet med en dagshandlare som driver ett excel-makro för att dra marknadsinformation från en finanswebbplats till ett excel-ark med VBA.
i denna handledning lär du dig:
- Vad är Dataskrapning?
- Hur förbereder du Excel-makro innan du utför Dataskrapning med Internet explorer?
- hur öppnar du Internet Explorer med Excel VBA?
- hur öppnar du Webbplatsen i Internet explorer med VBA?
- hur man skrapar information från webbplatsen med VBA?
Hur förbereder du Excel-makro innan du utför Dataskrapning med Internet explorer?
det finns vissa förutsättningar som måste utföras på excel-makrofilen innan du går in i processen med dataskrapning i excel.
dessa förutsättningar är följande:-
Steg 1) Öppna ett Excel-baserat makro och öppna utvecklaralternativet i excel.
steg 2) Välj Visual Basic-alternativ under Utvecklarband.
steg 3) Sätt i en ny modul.
steg 4) initiera en ny subrutin
Sub test()End sub
modulen skulle resultera enligt följande: –
Steg 5) Öppna referensalternativet under fliken Verktyg och referera till Microsoft HTML Object Library och Microsoft internet control.
följande filer ska refereras till modulen eftersom det hjälper till att öppna internet explorer och underlättar utvecklingen av makroskript.
nu är Excel-filen redo att interagera med internet explorer. Nästa steg skulle vara att införliva makroskript som skulle underlätta dataskrapning i HTML.
hur öppnar du Internet Explorer med Excel VBA?
Steg 1) initiera variabeln i underrutinerna som visas nedan
Sub test()Dim ie As New InternetExplorer Dim doc As New HTMLDocument
steg 2) för att öppna internet explorer med VBA, skriv dvs. synlig = true och tryck på F5.
Sub test()Dim ie As New InternetExplorer Dim doc As New HTMLDocumentIe.visible=true
modulen skulle se ut som följer: –
hur öppnar man webbplats i Internet explorer med VBA?
här är steg för att öppna webbplatsen i Internet exploer med VBA
Steg 1) När du har tillgång till internet explorer med Excel VBA, skulle nästa steg innehålla åtkomst till en webbplats med VBA. Detta underlättas av Navigera attribut, varvid webbadressen måste passera som dubbla citat i attributet. Följ följande steg som visas.
Sub test()Dim, ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate"http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop 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 klart med avseende på att utföra skrapfunktionerna. Nästa steg skulle visa hur informationen kan extraheras från internet explorer med VBA.
hur man skrapar information från webbplatsen med VBA?
Antag att daghandlaren vill få tillgång till data från webbplatsen dagligen. Varje gång daghandlaren trycker på klicka på knappen, bör den automatiskt dra marknadsdata till excel.
från ovanstående webbplats skulle det vara nödvändigt att inspektera ett element och observera hur uppgifterna är strukturerade.
Steg 1) öppna källkoden nedan för HTML genom att trycka på control + Shift + i
<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 enligt följande: –
Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.document
som det kan ses att data är strukturerad som en enda HTML-tabell. Därför, för att dra hela data från html-tabellen, det skulle kräva utformning av makro som samlar in data i form av en samling.
samlingen skulle sedan klistras in i excel. För att uppnå, utför de önskade resultaten nedanstående steg: –
steg 2) initiera Html-dokumentet i subrutinen
VBA-modulen skulle se ut som följer: –
steg 3) initiera samlingselementet som finns i HTML-dokumentet
VBA-modulen skulle se ut som följer: –
Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.documentSet ecoll = doc.getElementsByTagName("table")
steg 4) initiera excel-arkcellerna med hjälp av kapslad slinga som visas
VBA-modulen skulle se ut som följer: –
Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.documentSet ecoll = doc.getElementsByTagName("table")
excel kan initieras med hjälp av intervallattributet i excel-arket eller genom cellattributet i excel-arket. För att minska komplexiteten i VBA-skriptet initieras insamlingsdata till attributet excel-celler i ark 1 som finns i arbetsboken.
när makroskriptet är klart, skicka och tilldela subrutinen till excel-knappen och avsluta modulen i VBA. Märk knappen som uppdatera eller något lämpligt namn som kan initieras till den. I det här exemplet initieras knappen som en uppdatering.
Steg 5) Tryck på knappen Uppdatera för att få nedanstående utgång
steg 6) jämför resultaten i excel med resultaten från internet explorer
sammanfattning:
- dataskrapningen tillåter användaren att skrapa ut endast den information som användaren vill ha.
- skrapning kan utföras med internet explorer.
- skrapningsprocessen är långsammare när det gäller internet explorer; det ger emellertid de önskade resultaten till användaren.
- skrapningen ska utföras med absolut försiktighet och försiktighet eftersom det kan skada och krascha systemet som används för skrapning.