Web schrapen met VBA
Wat is Data Scraping?
data scraping is de techniek die helpt bij het extraheren van gewenste informatie van een HTML-webpagina naar een lokaal bestand dat aanwezig is in uw lokale machine. Normaal gesproken kan een lokaal bestand overeenkomen met een excel-bestand, word-bestand of om een Microsoft office-toepassing te zeggen. Het helpt bij het kanaliseren van kritische informatie van de webpagina.
het schrapen van gegevens wordt eenvoudig wanneer dagelijks aan een onderzoekproject wordt gewerkt, en een dergelijk project is louter afhankelijk van het internet en de website. Om verder te illustreren over het onderwerp, laten we het voorbeeld van een dag handelaar die een Excel-macro loopt voor het trekken van marktinformatie van een financiële website in een excel-blad met behulp van VBA.
in deze tutorial leert u:
- Wat is Data Scraping?
- hoe Excel-Macro voorbereiden voordat gegevens worden geschraapt met Internet explorer?
- hoe Internet Explorer openen met Excel VBA?
- hoe een Website openen in Internet explorer met VBA?
- hoe schraap ik informatie van de Website met behulp van VBA?
hoe Excel-Macro voorbereiden voordat gegevens worden geschrapt met Internet explorer?
er zijn bepaalde vereisten die moeten worden uitgevoerd op het Excel-macrobestand voordat u in het proces van gegevensschrapen in excel stapt.
deze voorwaarden zijn als volgt: –
Stap 1) Open een Excel-gebaseerde Macro en toegang tot de ontwikkelaar optie van excel.
Stap 2) Selecteer Visual Basic optie onder Ontwikkelaarslint.
Stap 3) Plaats een nieuwe module.
Stap 4) Initialiseer een nieuwe subroutine
Sub test()End sub
de module zal als volgt resulteren: –
Stap 5) Toegang tot de referentie optie onder de tool tab en referentie Microsoft HTML Object Library en Microsoft internet control.
de volgende bestanden moeten naar de module worden verwezen omdat deze helpt bij het openen van internet explorer en de ontwikkeling van macroscripts vergemakkelijkt.
nu is het Excel-bestand klaar om te communiceren met de Internet explorer. De volgende stap zou zijn om macro scripts die gegevens schrapen in HTML zou vergemakkelijken op te nemen.
hoe Internet Explorer openen met Excel VBA?
Stap 1) Initialiseer de variabele in de subroutines zoals hieronder weergegeven
Sub test()Dim ie As New InternetExplorer Dim doc As New HTMLDocument
Stap 2) om internet explorer te openen met behulp van VBA, schrijf d.w.z. zichtbaar = true en druk op F5.
Sub test()Dim ie As New InternetExplorer Dim doc As New HTMLDocumentIe.visible=true
de module ziet er als volgt uit: –
hoe Website openen in Internet explorer met behulp van VBA?
hier zijn stappen om de Website te openen in Internet exploer met behulp van VBA
Stap 1) Zodra u in staat bent om de Internet explorer te openen met behulp van Excel VBA, zou de volgende stap de toegang tot een website met behulp van VBA omvatten. Dit vergemakkelijkt door te navigeren attribuut, waarbij de URL moet passeren 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 zou worden geopend zoals weergegeven
nu is de Excel-macro klaar met betrekking tot het uitvoeren van de scraping-functies. De volgende stap zou laten zien hoe de informatie kan worden geëxtraheerd uit internet explorer met behulp van VBA.
hoe schraap ik informatie van de Website met behulp van VBA?
stel dat de daghandelaar dagelijks toegang wil tot de gegevens van de website. Elke keer dat de dag handelaar drukt op de klik op de knop, moet het automatisch trekken van de marktgegevens in excel.
op de bovenstaande website zou het nodig zijn om een element te inspecteren en te observeren hoe de gegevens gestructureerd zijn.
Stap 1) Toegang tot de onderstaande broncode van HTML door op control + Shift + I
<table class="datatable"><thead><tr><th>Company</th><th>Group</th><th>Pre Close (Rs)</th><th>Current Price (Rs)</th><th>% Change</th></tr>
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 dat de gegevens zijn gestructureerd als een enkele HTML-tabel. Daarom, om volledige gegevens uit de html-tabel te trekken, zou het het ontwerpen van macro vereisen die de gegevens in de vorm van een verzameling verzamelt.
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 verzamelelement aanwezig in het HTML-document
de VBA-module ziet er als volgt uit: –
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 geneste lus zoals getoond
de VBA-module ziet er als volgt uit: –
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")
de excel kan worden geïnitialiseerd met behulp van het kenmerk bereik van het excel-blad of via het kenmerk cellen van het excel-blad. Om de complexiteit van het VBA-script te verminderen, worden de collectiegegevens geïnitialiseerd naar het Excel-cells-attribuut van blad 1 dat in de werkmap aanwezig is.
zodra het macroscript klaar is, geef en wijs de subroutine toe aan de excel-knop en verlaat de module van VBA. Label de knop als vernieuwen of een geschikte naam die kan worden geïnitialiseerd. In dit voorbeeld wordt de knop geïnitialiseerd als een refresh.
Stap 5) Druk op de knop vernieuwen om de hieronder genoemde uitgang
Stap 6) het Vergelijken van de resultaten in excel met de resultaten van internet explorer
Samenvatting:
- De gegevens schrapen kan de gebruiker schraap alleen de informatie die de gebruiker wil.
- Scraping kan worden uitgevoerd met internet explorer.
- 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 zorgvuldigheid en voorzichtigheid worden uitgevoerd, omdat het het systeem dat Voor het schrapen wordt gebruikt, kan beschadigen en crashen.