Strganje po spletu VBA | Kako odstraniti spletne strani z uporabo programa Excel VBA?

Excel VBA spletno strganje

VBA Web Scraping je tehnika dostopa do spletnih strani in prenosa podatkov s tega spletnega mesta v naše računalniške datoteke. Spletno strganje je mogoče z dostopom do zunanjih aplikacij, kot je Internet Explorer. To lahko storimo na dva načina, tj. Zgodnja vezava in pozna vezava.

Spletno strganje z VBA pomeni, da kadar uporabljamo VBA za pridobivanje podatkov iz drugih spletnih virov, bo to morda zahtevalo prijavo za vire podatkov, vendar moramo najprej omogočiti sklice iz razdelka o orodjih v urejevalnik VBA za knjižnico Microsoft HTML za dostop do spleta iz VBA.

Ni veliko izmed nas, ki vedo, da lahko od Excela dostopamo do spletnih strani in pridobimo podatke s teh spletnih strani. Da, prav ste slišali. lahko brskamo po spletnih straneh, dostopamo do brskalnih aplikacij in še veliko več. V tem članku vam bomo pokazali, kako podrobno napišete kodo VBA za spletno strganje.

Običajno odpremo spletne strani, kopiramo podatke in jih prilepimo v svoje datoteke, kot so excel, word ali nekatere druge datoteke. Toda v tem članku vam bomo pokazali, kako dostopati do spletnih mest iz Excela in delati številne druge stvari.

Kako odstraniti podatke o spletnih mestih z uporabo VBA?

To predlogo VBA za spletno strganje Excel lahko prenesete tukaj - Predloga VBA za spletno strganje Excel

Kadar želimo dostopati do katere koli druge aplikacije iz excela, lahko to storimo na način, tj. "Early Binding" in "Late Binding". Na začetni stopnji je vedno varno uporabljati tehniko "zgodnje vezave".

Za dostop do spletnega mesta potrebujemo brskanje po aplikacijah, na primer » Internet Explorer «. Ker gre za zunanji objekt, moramo najprej nastaviti referenco.

Sledite spodnjim korakom za spletni zapis.

1. korak: Določite spremenljivko VBA in določite vrsto podatkov kot » Internet Explorer «.

Koda:

 Sub Web_Scraping () Dim Internet_Explorer Kot internet End Sub 

Kot lahko vidite zgoraj, ko poskušamo nastaviti referenco na Internet Explorer, ne moremo videti »Internet Explorerja«, ker je »Internet Explorer« zunanji objekt, zato moramo referenco nastaviti.

2. korak: Če želite nastaviti referenco, pojdite na » Orodja « in izberite » Reference «.

V spodnjem oknu se pomaknite navzdol in izberite » Microsoft Internet Controls «.

3. korak: Potrdite polje »Microsoft Internet Controls« in kliknite V redu. Zdaj bi morali to ime predmeta videti na seznamu IntelliSense.

Koda:

 Sub Web_Scraping () Dim Internet_Explorer Kot inter End Sub 

4. korak: Izberite “InternetExplorer”.

Koda:

 Sub Web_Scraping () Dim Internet_Explorer Kot InternetExplorer End Sub 

5. korak: Nato moramo nastaviti referenco, da omogočimo Internet Explorer. Ker je to objektna spremenljivka, moramo za nastavitev referenc uporabiti ključno besedo " Set ".

Koda:

 Sub Web_Scraping () Dim Internet_Explorer kot InternetExplorer Nastavi Internet_Explorer = Nov InternetExplorer Konec Sub 

6. korak: Z uporabo spremenljivke Internet_Explorer lahko uporabimo lastnosti in metode Internet Explorerja.

Vnesite ime spremenljivke in postavite piko, da se prikaže seznam IntelliSense.

Koda:

Sub Web_Scraping () Zatemni Internet_Explorer kot InternetExplorer Nastavi Internet_Explorer = Nov InternetExplorer Internet_Explorer. Končaj pod

7. korak: Da bi si lahko ogledali aplikacijo Internet Explorer, moramo izbrati lastnost » Vidno « in status nastaviti kot » True «.

Koda:

 Sub Web_Scraping () Dim Internet_Explorer kot InternetExplorer Nastavi Internet_Explorer = Nov InternetExplorer Internet_Explorer.Visible = True End Sub 

Zdaj zaženite kodo in videli boste, da se v računalniku odpre Internet Explorer .

8. korak: Ker ni bil omenjen noben spletni naslov, lahko vidimo samo prazno stran. Če želimo dati spletni naslov brskalniku interneta, moramo uporabiti metodo » Navigacija «.

Koda:

 Sub Web_Scraping () Dim Internet_Explorer kot InternetExplorer Nastavi Internet_Explorer = Nov InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate (End Sub 

Korak 9: Kot lahko vidite zgoraj "Navigacija" metoda sprašuje, kateri URL je treba krmariti v Internet Explorer. Zdaj moram odpreti spletno mesto " Wallstreetnmojo " in naslov URL lahko navedem na naslednji način. “//Www.wallstreetmojo.com/”

Koda:

 Sub Web_Scraping() Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("//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 ("//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 ("//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 As InternetExplorer Set Internet_Explorer = New InternetExplorer Internet_Explorer.Visible = True Internet_Explorer.Navigate ("//www.wallstreetmojo.com") Do While Internet_Explorer.ReadyState  READYSTATE_COMPLETE: Loop MsgBox Internet_Explorer.LocationName & vbNewLine & vbNewLine & Internet_Explorer.LocationURL End Sub 

Now this will tell about the website description and also shows the website address as well.

Things to Remember here

  • Web scraping is possible by accessing external applications like 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.