Webschrapen met VBA

Inhoudsopgave:

Anonim

Wat is gegevensschrapen?

Dataschrapen is de techniek die helpt bij het extraheren van de gewenste informatie van een HTML-webpagina naar een lokaal bestand dat aanwezig is op uw lokale computer. Normaal gesproken kan een lokaal bestand overeenkomen met een Excel-bestand, Word-bestand, of om het even welke Microsoft Office-toepassing. Het helpt bij het kanaliseren van kritieke informatie van de webpagina.

Het schrapen van gegevens wordt eenvoudig wanneer je dagelijks aan een op onderzoek gebaseerd project werkt, en zo'n project is puur afhankelijk van internet en website. Om het onderwerp verder te illustreren, nemen we het voorbeeld van een daghandelaar die een Excel-macro uitvoert om marktinformatie van een financiële website naar een Excel-sheet te halen met behulp van VBA.

In deze tutorial leer je:

  • Wat is gegevensschrapen?
  • Hoe Excel-macro voorbereiden voordat gegevens worden geschraapt met Internet Explorer?
  • Hoe Internet Explorer openen met Excel VBA?
  • Hoe een website te openen in Internet Explorer met VBA?
  • Hoe informatie van de website te schrapen met VBA?

Hoe Excel-macro voorbereiden voordat gegevens worden geschraapt met Internet Explorer?

Er zijn bepaalde voorwaarden die aan het Excel-macrobestand moeten worden uitgevoerd voordat u in Excel begint met het opschrapen van gegevens.

Deze voorwaarden zijn als volgt: -

Stap 1) Open een op Excel gebaseerde macro en open de ontwikkelaaroptie Excel.

Stap 2) Selecteer de Visual Basic-optie onder het lint van de ontwikkelaar.

Stap 3) Plaats een nieuwe module.

Stap 4) Initialiseer een nieuwe subroutine

Sub test()End sub

De module zou als volgt resulteren: -

Stap 5) Open de referentieoptie onder de tooltab en verwijs naar Microsoft HTML Object Library en Microsoft internetcontrole.

De volgende bestanden zijn bedoeld om naar de module te verwijzen, aangezien het helpt bij het openen van Internet Explorer en de ontwikkeling van macroscripting vergemakkelijkt.

Nu is het Excel-bestand klaar voor interactie met de internetverkenner. De volgende stap zou zijn om macroscripts op te nemen die het schrapen van gegevens in HTML zouden vergemakkelijken.

Hoe Internet Explorer openen met Excel VBA?

Stap 1) Initialiseer de variabele in de subroutines zoals hieronder weergegeven

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocument

Stap 2) Om Internet Explorer te openen met VBA, schrijft u ie visible = true en drukt u op F5.

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentIe.visible=true

De module zou er als volgt uitzien: -

Hoe een website te openen in Internet Explorer met VBA?

Hier zijn de stappen om de website te openen in internetexploitant met behulp van VBA

Stap 1) Zodra u toegang heeft tot de internetverkenner met Excel VBA, zou de volgende stap de toegang tot een website met VBA omvatten. Dit wordt mogelijk gemaakt door Navigate Attribute, waarbij de URL moet worden doorgegeven als dubbele aanhalingstekens in het attribuut. Volg de volgende stappen zoals weergegeven.

Sub test()Dim, ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate"http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETE

Stap 2) - Druk op F5 om de macro uit te voeren. De volgende webpagina wordt geopend zoals weergegeven

Nu is de Excel-macro klaar met betrekking tot het uitvoeren van de scrapfuncties. De volgende stap zou laten zien hoe de informatie kan worden geëxtraheerd uit Internet Explorer met behulp van VBA.

Hoe informatie van de website te schrapen met VBA?

Stel dat de daghandelaar dagelijks toegang wil hebben tot de gegevens van de website. Elke keer dat de daghandelaar op de klik op de knop drukt, zou hij de marktgegevens automatisch naar Excel moeten halen.

Vanaf de bovenstaande website zou het nodig zijn om een ​​element te inspecteren en te observeren hoe de gegevens zijn gestructureerd.

Stap 1) Open de onderstaande broncode van HTML door op control + Shift + I te drukken

De broncode zou als volgt zijn: -

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.document

Zoals te zien is, zijn de gegevens gestructureerd als een enkele HTML-tabel. Daarom, om volledige gegevens uit de html-tabel te halen, moet een macro worden ontworpen die de gegevens in de vorm van een verzameling verzamelt.

De verzameling zou dan in Excel worden geplakt. Voer de onderstaande stappen uit om de gewenste resultaten te bereiken:

Stap 2) Initialiseer het html-document in de subroutine

De VBA-module zou er als volgt uitzien: -

Stap 3) Initialiseer het collectie-element dat aanwezig is in het HTML-document

De VBA-module zou er als volgt uitzien: -

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.documentSet ecoll = doc.getElementsByTagName("table")

Stap 4) Initialiseer de Excel-bladcellen met behulp van de geneste lus, zoals weergegeven

De VBA-module zou er als volgt uitzien: -

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.documentSet ecoll = doc.getElementsByTagName("table")

Het Excel-bestand kan worden geïnitialiseerd met behulp van het bereikattribuut van het Excel-blad of via het cel-attribuut van het Excel-blad. Om de complexiteit van het VBA-script te verminderen, worden de verzamelingsgegevens geïnitialiseerd naar het Excel-celattribuut van blad 1 dat aanwezig is in de werkmap.

Zodra het macroscript klaar is, geeft u de subroutine door en wijst u deze toe aan de Excel-knop en verlaat u de module van VBA. Label de knop als vernieuwen of een andere geschikte naam die erop kan worden geïnitialiseerd. Voor dit voorbeeld wordt de knop geïnitialiseerd als vernieuwing.

Stap 5) Druk op de knop Vernieuwen om de onderstaande uitvoer te krijgen

Stap 6) Vergelijk de resultaten in Excel met de resultaten van Internet Explorer

Overzicht:

  • Met het schrapen van gegevens kan de gebruiker alleen de informatie wegschrapen die de gebruiker wil.
  • Schrapen kan worden uitgevoerd met behulp van internetverkenner.
  • Het proces van schrapen verloopt langzamer in het geval van internet explorer; het levert echter de gewenste resultaten op voor de gebruiker.
  • Het schrapen moet met absolute voorzichtigheid en voorzichtigheid worden uitgevoerd, aangezien dit het systeem dat voor het schrapen wordt gebruikt, kan beschadigen en crashen.
CompanyGroupPre Close (Rs)Current Price (Rs)% Change