Webscraping met VBA

Wat is datascraping?

Gegevensschrapen is de techniek die helpt bij het extraheren van 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 te zeggen. Het helpt bij het kanaliseren van kritieke informatie van de webpagina.

Het gegevensschrapen wordt eenvoudig wanneer u dagelijks aan een op onderzoek gebaseerd project werkt, en een dergelijk project is puur afhankelijk van internet en website. Laten we, om het onderwerp verder te illustreren, het voorbeeld nemen van een daghandelaar die een Excel-macro uitvoert om marktinformatie van een financiële website naar een Excel-blad te trekken met behulp van VBA.

In deze tutorial leer je:

Hoe Excel Macro voorbereiden voordat u Data Scraping uitvoert met Internet Explorer?

Er zijn bepaalde vereisten die moeten worden uitgevoerd op het Excel-macrobestand voordat u aan het proces van gegevensschrapen in Excel begint.

Deze voorwaarden zijn als volgt: -

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

Stap 2) Selecteer de optie Visual Basic onder het lint voor ontwikkelaars.

Stap 3) Plaats een nieuwe module.

Stap 4) Initialiseer een nieuwe subroutine |_+_|

De module zou als volgt resulteren: -

Stap 5) Open de referentie-optie onder de tool-tab en verwijs naar Microsoft HTML Object Library en Microsoft Internet Control.

De volgende bestanden moeten naar de module worden verwezen omdat het helpt bij het openen van Internet Explorer en de ontwikkeling van macroscripts vergemakkelijkt.

Nu is het Excel-bestand klaar om te communiceren 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 |_+_|

Stap 2) Als u Internet Explorer wilt openen met VBA, schrijft u: d.w.z. zichtbaar = waar en druk op F5.

 Sub test() End sub 

De module ziet er als volgt uit: -

Hoe een website in Internet Explorer te openen met VBA?

Hier zijn stappen om de website in Internet Explorer te openen met VBA

Stap 1) Zodra u toegang hebt tot internetverkenner met Excel VBA, is de volgende stap het openen van een website met VBA. Dit wordt mogelijk gemaakt door Navigate Attribute, waarbij de URL als dubbele aanhalingstekens in het attribuut moet passeren. Volg de volgende stappen zoals weergegeven. |__+_|

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 schrapfuncties. 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, moet deze automatisch de marktgegevens naar Excel trekken.

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

Stap 1) Open de onderstaande HTML-broncode door op control + Shift + I |_+_| . te drukken

De broncode zou als volgt zijn: - |_+_|

Zoals te zien is, zijn de gegevens gestructureerd als een enkele HTML-tabel. Om volledige gegevens uit de html-tabel te halen, zou daarom een ​​macro moeten worden ontworpen die de gegevens verzamelt in de vorm van een verzameling.

De verzameling wordt dan in Excel geplakt. Om de gewenste resultaten te bereiken, voert u de onderstaande stappen uit: -

Stap 2) Initialiseer het Html-document in de subroutine

De VBA-module ziet er als volgt uit: -

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

De VBA-module ziet er als volgt uit: - |_+_|

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

De VBA-module ziet er als volgt uit: - |_+_|

De Excel kan worden geïnitialiseerd met behulp van het bereikkenmerk van het Excel-blad of via het celkenmerk van het Excel-blad. Om de complexiteit van het VBA-script te verminderen, worden de verzamelingsgegevens geïnitialiseerd naar het Excel-cellenkenmerk 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 geschikte naam die erop kan worden geïnitialiseerd. Voor dit voorbeeld wordt de knop geïnitialiseerd als een vernieuwing.

Stap 5) Druk op de refresh-knop om de onderstaande output te krijgen

Stap 6) Vergelijk de resultaten in Excel met de resultaten van internet explorer

Samenvatting:

  • Met het schrapen van gegevens kan de gebruiker alleen de informatie wegschrapen die de gebruiker wil.
  • Schrapen kan met Internet Explorer.
  • Het proces van schrapen is langzamer in het geval van internet explorer; het levert de gebruiker echter de gewenste resultaten op.
  • Het schrapen moet met absolute zorgvuldigheid en voorzichtigheid worden uitgevoerd, omdat het het systeem dat voor het schrapen wordt gebruikt, kan beschadigen en laten crashen.