VBA Web Scraping

Excel VBA Web Scraping

VBA Web Scraping är en teknik för att komma åt webbsidor och ladda ner data från den webbplatsen till våra datafiler. Webbskrapning är möjlig genom åtkomst till externa applikationer som Internet Explorer. Vi kan göra det på två sätt, dvs Early Binding & Late Binding.

Web Scraping med VBA betyder att när vi använder VBA för att hämta data från andra källor på webben, kan detta kräva inloggningar för datakällorna, men först, för att göra det, måste vi aktivera referenser från verktygssektionen i VBA-redigeraren för Microsoft HTML-biblioteket för att komma åt webben från VBA.

Det är inte många av oss som vet att från Excel kan vi komma åt webbsidorna och få information från dessa webbsidor. Ja, du hörde det rätt. vi kan skrapa igenom webbsidor, komma åt webbapplikationer och många fler. I den här artikeln visar vi dig hur du skriver en excel VBA-kod för webbskrapning i detalj.

Vanligtvis öppnar vi webbsidorna, kopierar data och klistrar in dem i våra filer som excel, word eller några andra filer. Men i den här artikeln visar vi dig hur du kommer åt webbplatser från Excel och gör många andra slags saker.

Hur skrotar jag webbplatsinformation med VBA?

Du kan ladda ner denna VBA Web Scraping Excel-mall här - VBA Web Scraping Excel-mall

När vi vill komma åt andra applikationer från excel kan vi göra detta på sätt som "Early Binding" & "Late Binding". På nybörjarstadiet är det alltid säkert att använda tekniken ”Early Binding”.

För att komma åt webbplatsen behöver vi surfa applikationer, till exempel “ Internet Explorer ”. Eftersom det är ett externt objekt måste vi först ställa in referensen.

Följ stegen nedan för webbskrot.

Steg 1: Definiera VBA-variabeln och tilldela datatypen " Internet Explorer ".

Koda:

 Sub Web_Scraping () Dim Internet_Explorer Som Internet End Sub 

Som du kan se ovan när vi försöker ställa in referensen till Internet Explorer får vi inte se "Internet Explorer", detta beror på att "Internet Explorer" är ett externt objekt så vi måste ställa in referensen.

Steg 2: För att ställa in referensen går du till " Verktyg " och väljer " Referenser ".

I fönstret nedan rullar du ner och väljer “ Microsoft Internet Controls ”.

Steg 3: Markera rutan "Microsoft Internet Controls" och klicka på Ok. Nu ska vi se detta objektnamn i IntelliSense-listan.

Koda:

 Sub Web_Scraping () Dim Internet_Explorer Som inter End Sub 

Steg 4: Välj "InternetExplorer".

Koda:

 Sub Web_Scraping () Dim Internet_Explorer Som InternetExplorer End Sub 

Steg 5: Därefter måste vi ställa in referensen för att aktivera Internet Explorer. Eftersom detta är en objektvariabel måste vi använda nyckelordet " Set " för att ställa in referenserna.

Koda:

 Sub Web_Scraping () Dim Internet_Explorer Som InternetExplorer Ange Internet_Explorer = New InternetExplorer End Sub 

Steg 6: Nu med variabeln " Internet_Explorer " kan vi använda egenskaperna och metoderna för Internet Explorer.

Ange variabelnamnet och sätt en punkt för att se IntelliSense-listan.

Koda:

Sub Web_Scraping () Dim Internet_Explorer Som InternetExplorer Ange Internet_Explorer = Nytt InternetExplorer Internet_Explorer. Avsluta sub

Steg 7: För att kunna se Internet Explorer-applikationen måste vi välja " Synlig " -egenskap och ställa in status som " True ".

Koda:

 Sub Web_Scraping () Dim Internet_Explorer Som InternetExplorer Ange Internet_Explorer = Nytt InternetExplorer Internet_Explorer.Visible = True End Sub 

Kör nu koden och du skulle se att en Internet Explorer öppnas på din dator.

Steg 8: Eftersom ingen webbadress har nämnts kan vi bara se en tom sida. För att ge webbadressen till Internet Explorer måste vi ” Navigation ” -metoden.

Koda:

 Sub Web_Scraping () Dim Internet_Explorer Som InternetExplorer Ange Internet_Explorer = Nytt InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate (End Sub 

Steg 9: Som du kan se ovan "Navigationsmetod" som frågar vilken URL som ska navigeras i Internet Explorer. Nu måste jag öppna webbplatsen " Wallstreetnmojo " och jag kan ange URL-adressen enligt följande. “//Www.wallstreetmojo.com/”

Koda:

 Sub Web_Scraping () Dim Internet_Explorer Som InternetExplorer Ange Internet_Explorer = Nytt InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("//www.wallstreetmojo.com") End Sub 

Kör nu koden, vi ska se den nämnda webbadressen i Internet Explorer.

Här har vi ett problem att när koden öppnas måste koden vänta tills sidan helt öppnas.

Steg 10: Vi måste använda "Do While" -slingan i VBA för att faktiskt vänta på att vår kod ska gå längre tills den nämnda sidan är fulladdad.

Så lägg till under "Do While" -slingan för att tvinga makrot att vänta tills den nämnda webbsidan kommer till " Ready State Complete " -läget.

Koda:

 Sub Web_Scraping () Dim Internet_Explorer Som InternetExplorer Ange Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("//www.wallstreetmojo.com") Gör medan Internet_Explorer.ReadyState READYSTATE_COMPLETE: Loop End Sub 

Steg 11: Låt oss nu försöka få information om webbplatsen i en enda rad. För att få information om den nämnda webbadressinformationen måste vi använda egenskapen “ Platsnamn ”.

Koda:

 Sub Web_Scraping () Dim Internet_Explorer Som InternetExplorer Ange Internet_Explorer = Nytt InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("//www.wallstreetmojo.com") Gör medan Internet_Explorer.ReadyState READYSTATE_COMPLETE: Loop MsgBox. 

Kör koden och i meddelandefältet skulle vi få information om webbplatsen.

Steg 12: Nu längst ner kan vi också skriva ut webbadresser.

Koda:

 Sub Web_Scraping () Dim Internet_Explorer Som InternetExplorer Ange Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("//www.wallstreetmojo.com") Gör medan Internet_Explorer.ReadyState READYSTATE_COMPLETE: Loop Msgb .LocationURL End Sub 

Nu kommer detta att berätta om webbplatsens beskrivning och visar också webbplatsens adress.

Saker att komma ihåg här

  • Webbskrapning är möjlig genom åtkomst till externa applikationer som Internet Explorer.
  • We can do it in two ways i.e. Early Binding & Late Binding. With Early Binding, we can get to see the IntelliSense list but with late binding, we cannot get to see the IntelliSense list at all.