VBA Web Scraping - Hvordan skrap nettsteder ved hjelp av Excel VBA?

Innholdsfortegnelse

Excel VBA Web Scraping

VBA Web Scraping er en teknikk for å få tilgang til websider og laste ned dataene fra nettstedet til våre datafiler. Nettskraping er mulig ved å få tilgang til eksterne applikasjoner som Internet Explorer. Vi kan gjøre det på to måter, dvs. tidlig binding og sen binding.

Web Scraping med VBA betyr at når vi bruker VBA for å hente dataene fra de andre kildene på nettet, kan dette kreve pålogginger for datakildene, men først, for å gjøre det, må vi aktivere referansene fra verktøyseksjonen i VBA-editoren for Microsoft HTML-biblioteket for å få tilgang til nettet fra VBA.

Ikke mange av oss vet at fra Excel kan vi få tilgang til nettsidene og få data fra disse websidene. Ja, du hørte det riktig. vi kan skrape gjennom nettsider, få tilgang til nettlesingsapplikasjoner og mange flere. I denne artikkelen vil vi vise deg hvordan du skriver en excel VBA-kode for nettskraping i detalj.

Vanligvis åpner vi nettsidene, kopierer dataene og limer dem inn i filene våre som excel, word eller noen andre filer. Men i denne artikkelen vil vi vise deg hvordan du får tilgang til nettsteder fra Excel og gjør mange andre slags ting.

Hvordan skrap nettstedsdata ved hjelp av VBA?

Når vi ønsker å få tilgang til andre applikasjoner fra excel, kan vi gjøre dette på måter, dvs. "Early Binding" og "Late Binding." På nybegynnerstadiet er det alltid trygt å bruke "Early Binding" -teknikken.

For å få tilgang til nettstedet, trenger vi nettlesingsprogrammer, for eksempel " Internet Explorer ." Siden det er et eksternt objekt, må vi først sette referansen.

Følg trinnene nedenfor for å skrape nettet.

Trinn 1: Definer VBA-variabelen og tilordne datatypen som " Internet Explorer ."

Kode:

Sub Web_Scraping () Dim Internet_Explorer Som internett End Sub

Som du kan se ovenfor, når vi prøver å sette referansen til Internet Explorer, får vi ikke se "Internet Explorer", dette er fordi "Internet Explorer" er et eksternt objekt, så vi må sette referansen.

Trinn 2: For å angi referansen, gå til " Verktøy " og velg " Referanser ."

I vinduet nedenfor, rull ned og velg " Microsoft Internet Controls ."

Trinn 3: Merk av i "Microsoft Internet Controls" og klikk på OK. Nå skal vi se dette objektnavnet i IntelliSense-listen.

Kode:

Sub Web_Scraping () Dim Internet_Explorer Som inter End Sub

Trinn 4: Velg "InternetExplorer."

Kode:

Sub Web_Scraping () Dim Internet_Explorer Som InternetExplorer End Sub

Trinn 5: Deretter må vi sette referansen for å aktivere Internet Explorer. Siden dette er en objektvariabel, må vi bruke nøkkelordet " Sett " for å angi referansene.

Kode:

Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer End Sub

Trinn 6: Nå, ved å bruke variabelen " Internet_Explorer ", kan vi bruke egenskapene og metodene til Internet Explorer.

Skriv inn variabelnavnet og sett en prikk for å se IntelliSense-listen.

Kode:

Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer. Slutt Sub

Trinn 7: Nå, for å kunne se Internet Explorer-applikasjonen, må vi velge " Synlig " -egenskap og sette status som " Sann ."

Kode:

Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True End Sub

Kjør nå koden, og du bør se at en Internet Explorer åpnes på datamaskinen din.

Trinn 8: Fordi ingen nettadresser er nevnt, kan vi bare se en tom side. For å gi nettadressen til Internet Explorer, må vi “ Navigering ” -metoden.

Kode:

Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate (End Sub

Trinn 9: Som du kan se ovenfor "Navigering" -metoden som spør hvilken URL du skal navigere i Internet Explorer. Nå må jeg åpne nettstedet " Wallstreetnmojo ", og jeg kan oppgi URL-adressen som følger. “Https://www.wallstreetmojo.com/”

Kode:

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

Kjør nå koden, vi skal se den nevnte nettadressesiden i Internet Explorer.

Her har vi et problem at når websiden er åpnet, må koden vår vente til sidenes webside åpnes helt.

Trinn 10: Vi må bruke "Gjør mens" -sløyfen i VBA for å faktisk vente på at koden vår skal gå lenger til den nevnte siden er fullastet.

Så legg til under "Gjør mens" -sløyfen for å tvinge makroen til å vente til den nevnte websiden kommer til " Klar tilstand fullført " -modus.

Kode:

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

Trinn 11: La oss nå prøve å få informasjon om nettstedet i en enkelt linje. For å få informasjon om den nevnte nettadresseinformasjonen, må vi bruke egenskapen “ Location Name ”.

Kode:

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 Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("https://www.wallstreetmojo.com") Gjør mens Internet_Explorer.ReadyState READYSTATE_COMPLETE: Loop Mbg & Internet_Explorer.LocationURL End Sub

Nå vil dette fortelle om nettstedsbeskrivelsen og også vise nettadressen.

Ting å huske her

  • Nettskraping er mulig ved å få tilgang til eksterne applikasjoner som Internet Explorer.
  • Vi kan gjøre det på to måter, dvs. Early Binding & Late Binding. Med Early Binding kan vi se IntelliSense-listen, men med sen binding kan vi ikke se IntelliSense-listen i det hele tatt.

Interessante artikler...