Web Scraping med VBA

Innehållsförteckning:

Anonim

Vad är dataskrapning?

Dataskrapning är tekniken som hjälper till att utvinna ö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 något Microsoft Office-program. Det hjälper till att kanalisera viktig 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 hämta marknadsinformation från en finanswebbplats till ett excelblad med VBA.

I den här handledningen lär du dig:

  • Vad är dataskrapning?
  • Hur förbereder jag Excel-makro innan du utför dataskrapning med Internet Explorer?
  • Hur öppnar jag Internet Explorer med Excel VBA?
  • Hur öppnar jag webbplats i Internet Explorer med VBA?
  • Hur skrapar man information från webbplatsen med VBA?

Hur förbereder jag 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 dataskrapning i Excel.

Dessa förutsättningar är följande: -

Steg 1) Öppna en Excel-baserad makro och få tillgång till utvecklaralternativet för Excel.

Steg 2) Välj alternativet Visual Basic under utvecklarbandet.

Steg 3) Sätt i en ny modul.

Steg 4) Initiera en ny subrutin

Sub test()End sub

Modulen skulle bli följande: -

Steg 5) Öppna referensalternativet under verktygsfliken och referera till Microsoft HTML Object Library och Microsofts internetkontroll.

Följande filer ska hänvisas 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 är att införliva makroskript som underlättar dataskrapning i HTML.

Hur öppnar jag Internet Explorer med Excel VBA?

Steg 1) Initiera variabeln i underrutinerna som visas nedan

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocument

Steg 2) För att öppna Internet Explorer med VBA, skriv ie synlig = true och tryck på F5.

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentIe.visible=true

Modulen ser ut som följer: -

Hur öppnar jag webbplats i Internet Explorer med VBA?

Här är steg för att öppna webbplats i Internet exploer med hjälp av VBA

Steg 1) När du har tillgång till Internet Explorer med Excel VBA, skulle nästa steg införliva åtkomst till en webbplats med VBA. Detta underlättas av Navigate Attribute, där URL: en 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 utföra makrot. Följande webbsida öppnas som visas

Nu är excel-makrot klart för att utföra skrapfunktionerna. Nästa steg visar hur informationen kan extraheras från Internet Explorer med VBA.

Hur skrapar man information från webbplatsen med VBA?

Anta att dagshandlare vill komma åt data från webbplatsen dagligen. Varje gång den dagliga näringsidkaren trycker på klicka på knappen ska 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) Gå till källkoden nedan för HTML genom att trycka på kontroll + Skift + I

Källkoden skulle vara 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.document

Som det kan ses att data är strukturerade som en enda HTML-tabell. Därför, för att hämta hela data från HTML-tabellen, skulle det kräva design av makro som samlar in data i form av en samling.

Samlingen klistras sedan in i excel. För att uppnå utför de önskade resultaten nedanstående steg: -

Steg 2) Initiera Html-dokumentet i underrutinen

VBA-modulen ser ut som följer: -

Steg 3) Initiera samlingselementet som finns i HTML-dokumentet

VBA-modulen ser 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 ser 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 för excel-arket eller genom celler-attributet för excel-arket. För att minska komplexiteten i VBA-skriptet initialiseras samlingsdata till excelcellsattributet för ark 1 i arbetsboken.

När makroskriptet är klart, skicka och tilldela underrutinen till excel-knappen och avsluta modulen i VBA. Märk knappen som uppdatering eller något lämpligt namn som kan initieras till den. I det här exemplet initialiseras knappen som en uppdatering.

Steg 5) Tryck på uppdateringsknappen för att få utmatningen nedan

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 går långsammare när det gäller Internet Explorer. dock levererar det önskade resultat 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.
CompanyGroupPre Close (Rs)Current Price (Rs)% Change