Excel VBA-webschrapen
VBA Web Scraping is een techniek om webpagina's te openen en de gegevens van die website naar onze computerbestanden te downloaden. Webscraping is mogelijk door toegang te krijgen tot externe applicaties zoals Internet Explorer. We kunnen dit op twee manieren doen: Early Binding & Late Binding.
Webscraping met VBA betekent dat wanneer we VBA gebruiken om de gegevens van de andere bronnen op internet op te halen, dit mogelijk inlogpogingen vereist voor de gegevensbronnen, maar om dit te kunnen doen, moeten we de verwijzingen inschakelen vanuit het gedeelte Tools in de VBA-editor voor de Microsoft HTML-bibliotheek om vanuit VBA toegang te krijgen tot internet.
Weinigen van ons weten dat we van Excel toegang hebben tot de webpagina's en de gegevens van die webpagina's kunnen krijgen. Ja, je hebt het goed gehoord. we kunnen door webpagina's bladeren, browsertoepassingen openen en nog veel meer. In dit artikel laten we u in detail zien hoe u een Excel VBA-code voor webscraping schrijft.
Gewoonlijk openen we de webpagina's, kopiëren we de gegevens en plakken deze in onze bestanden, zoals Excel, Word of andere bestanden. Maar in dit artikel laten we u zien hoe u toegang krijgt tot websites vanuit Excel en hoe u vele andere dingen kunt doen.

Hoe websitegegevens te verwijderen met VBA?
Als we toegang willen krijgen tot andere applicaties vanuit Excel, kunnen we dit doen op manieren, bijvoorbeeld "Early Binding" en "Late Binding." In de beginnersfase is het altijd veilig om de techniek "Early Binding" te gebruiken.
Om toegang te krijgen tot de website, hebben we browsertoepassingen nodig, bijvoorbeeld ' Internet Explorer' . Omdat het een extern object is, moeten we eerst de referentie instellen.
Volg de onderstaande stappen voor webschroot.
Stap 1: Definieer de VBA-variabele en wijs het gegevenstype toe als ' Internet Explorer' .
Code:
Sub Web_Scraping () Dim Internet_Explorer Als internet End Sub

Zoals je hierboven kunt zien, krijgen we, wanneer we proberen de referentie naar Internet Explorer in te stellen, "Internet Explorer" niet te zien, dit komt omdat "Internet Explorer" een extern object is, dus we moeten de referentie instellen.
Stap 2: Om de referentie in te stellen, ga naar " Tools " en kies " References ".

Scrol in het onderstaande venster omlaag en kies ' Microsoft Internet Controls' .

Stap 3: Vink het vakje "Microsoft Internet Controls" aan en klik op Ok. Nu zouden we deze objectnaam in de IntelliSense-lijst moeten zien.
Code:
Sub Web_Scraping () Dim Internet_Explorer Als inter End Sub

Stap 4: Kies 'InternetExplorer'.
Code:
Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer End Sub

Stap 5: Vervolgens moeten we de referentie instellen om Internet Explorer in te schakelen. Aangezien dit een objectvariabele is, moeten we het sleutelwoord " Set " gebruiken om de referenties in te stellen.
Code:
Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = Nieuw InternetExplorer End Sub

Stap 6: Nu kunnen we met de variabele " Internet_Explorer " de eigenschappen en methoden van internet explorer gebruiken.
Voer de variabelenaam in en plaats een punt om de IntelliSense-lijst te zien.
Code:
Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = Nieuwe InternetExplorer Internet_Explorer. Einde Sub

Stap 7: Om de applicatie Internet Explorer te kunnen bekijken, moeten we de eigenschap " Zichtbaar " kiezen en de status instellen op " Waar ".
Code:
Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = Nieuwe InternetExplorer Internet_Explorer.Visible = True End Sub

Voer nu de code uit en u zou moeten zien dat er een Internet Explorer op uw computer wordt geopend.

Stap 8: Omdat er geen webadres is vermeld, kunnen we alleen een blanco pagina zien. Om het webadres aan de internetverkenner te geven, hebben we de " Navigatiemethode " nodig.
Code:
Sub Web_Scraping () Dim Internet_Explorer As InternetExplorer Set Internet_Explorer = New 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 As InternetExplorer Set Internet_Explorer = Nieuwe InternetExplorer Internet_Explorer.Visible = Echte Internet_Explorer.Navigate ("https://www.wallstreetmojo.com") Doe terwijl Internet_Explorer.ReadyState READYSTATE_COMPLETE: LoopLineExplorer.ReadyState & Internet_Explorer.LocationURL End Sub

Dit zal nu vertellen over de website-beschrijving en toont ook het websiteadres.

Dingen om hier te onthouden
- Webscraping is mogelijk door toegang te krijgen tot externe applicaties zoals Internet Explorer.
- We kunnen dit op twee manieren doen, namelijk Early Binding & Late Binding. Met Early Binding kunnen we de IntelliSense-lijst zien, maar met late binding kunnen we de IntelliSense-lijst helemaal niet zien.