VBA Web Scraping - Hur skrotar jag webbplatser med Excel VBA?

Innehållsförteckning

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 datorfiler. Webbskrapning är möjlig genom att komma åt 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?

När vi vill komma åt andra applikationer från excel, kan vi göra detta på sätt, dvs "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", det här 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 End

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 referenser.

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 egenskapen " Synlig " och ställa in status som " Sann ".

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 bör 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

Step 9: As you can see above “Navigation” method asking which URL to be navigated in internet explorer. Now I need to open the website “Wallstreetnmojo,” and I can give the URL address as follows. “https://www.wallstreetmojo.com/”

Code:

Sub Web_Scraping() Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("https://www.wallstreetmojo.com") End Sub

Now run the code, we should see the mentioned web address page in internet explorer.

Here we have a problem that once the web page is opened, our code needs to wait until the page web page fully opened.

Step 10: We need to use the “Do While” loop in VBA to actually wait for our code to go any further until the mentioned page is fully loaded.

So, add below the “Do While” loop to force the macro to wait until the mentioned web page comes to the “Ready State Complete” mode.

Code:

Sub Web_Scraping() Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("https://www.wallstreetmojo.com") Do While Internet_Explorer.ReadyState READYSTATE_COMPLETE: Loop End Sub

Step 11: Now, let’s try to get information about the website in a single line. To get the information about the mentioned web address information, we need to use the “Location Name” property.

Code:

Sub Web_Scraping() Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("https://www.wallstreetmojo.com") Do While Internet_Explorer.ReadyState READYSTATE_COMPLETE: Loop MsgBox Internet_Explorer.LocationName End Sub

Run the code, and in the message box, we would get the information about the website.

Step 12: Now, at the bottom, we can also print website addresses as well.

Code:

Sub Web_Scraping () Dim Internet_Explorer Som InternetExplorer Ställ Internet_Explorer = Nytt InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("https://www.wallstreetmojo.com") Gör medan Internet_Explorer.ReadyState READYSTATE_COMPLETE: Loop Mbg & Internet_Explorer.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.
  • Vi kan göra det på två sätt, dvs Early Binding & Late Binding. Med tidig bindning kan vi se IntelliSense-listan, men med sen bindning kan vi inte se IntelliSense-listan alls.

Intressanta artiklar...