VBA WebScrping naar Excel
โก Slimme samenvatting
Webscraping met VBA extracgegevens rechtstreeks vanuit HTML-webpagina's in Excel importeren met behulp van Internet Explorer-automatisering. Microsoft HTML-objectbibliotheek om door een website te navigeren, een HTML-tabel te lezen en de verzamelde waarden in werkbladcellen te schrijven.

Wat is DataScrap?ping?
Gegevensscratchping is de techniek die helpt bij extracDe gewenste informatie van een HTML-webpagina wordt opgeslagen in een lokaal bestand op uw computer. Normaal gesproken is dat lokale bestand een Excel-bestand, een Word-bestand of een ander bestand. Microsoft Office-applicatie. Het helpt bij het doorsturen van belangrijke informatie van de webpagina.
Gegevensscratchping Dit wordt waardevol bij een onderzoeksproject dat dagelijks afhankelijk is van internet. Ter illustratie: neem een โโdaytrader die een Excel-macro gebruikt om marktgegevens van een financiรซle website in een Excel-spreadsheet te laden met behulp van VBA.
Hoe bereid je een Excel-macro voor voordat je gegevens opslaat?ping (Internet Explorer)
Voordat de gegevensverwerking kan worden gestart, moet er aan het Excel-macrobestand aan bepaalde voorwaarden worden voldaan.ping proces.
De volgende voorwaarden zijn van toepassing:
Stap 1) Open een macro in Excel en ga naar de ontwikkelaarsopties van Excel.
Stap 2) Selecteer de optie Visual Basic in het tabblad Ontwikkelaar.
Stap 3) Plaats een nieuwe module.
Stap 4) Een nieuwe subroutine initialiseren.
Sub test() End Sub
De module zou het volgende resultaat opleveren:
Stap 5) Ga naar de optie 'Referentie' onder het tabblad 'Tools' en raadpleeg de referentie. Microsoft HTML-objectbibliotheek en Microsoft Internetbediening.
De volgende bestanden moeten aan de module worden toegevoegd, omdat ze helpen bij het openen van Internet Explorer en het uitvoeren van macroscripts mogelijk maken.
Het Excel-bestand is nu klaar voor gebruik met Internet Explorer. De volgende stap is het toevoegen van macroscripts die het scannen van gegevens vergemakkelijken.ping in HTML.
Hoe Internet Explorer te openen met Excel VBA
Stap 1) Initialiseer de variabele in de subroutine zoals hieronder weergegeven.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument
Stap 2) Om Internet Explorer te openen met VBA, typt u ie.Visible = True en drukt u op F5.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument ie.Visible = True
De module zou er als volgt uitzien:
Hoe open je een website in Internet Explorer met behulp van VBA?
Hieronder volgen de stappen om een โโwebsite in Internet Explorer te openen met behulp van VBA.
Stap 1) Zodra je Internet Explorer kunt openen met Excel VBA, is de volgende stap het openen van een website met VBA. Dit wordt mogelijk gemaakt door het Navigate-attribuut, waarmee je toegang krijgt tot een website. URL wordt tussen dubbele aanhalingstekens doorgegeven. Volg de getoonde stappen.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE
Stap 2) Druk op F5 om de macro uit te voeren. De volgende webpagina wordt geopend, zoals weergegeven.
De Excel-macro is nu klaar om de scan uit te voeren.ping functies. De volgende stap laat zien hoe de informatie kan worden geรซxtraheerd.tracted vanuit Internet Explorer met behulp van VBA.
Hoe je met VBA informatie van een website kunt schrapen
Stel dat de daytrader dagelijks toegang wil tot de gegevens van de website. Telkens wanneer de daytrader op de knop klikt, moeten de marktgegevens automatisch in Excel worden geladen.
Het is noodzakelijk om op basis van de bovenstaande website een element te inspecteren en te bekijken hoe de gegevens zijn gestructureerd.
Stap 1) U kunt de broncode van de onderstaande HTML bekijken door op Control + te drukken. Shift + ik
<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>
De broncode zou er als volgt uitzien:
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document
Zoals je ziet, zijn de gegevens gestructureerd als รฉรฉn enkele HTML-tabel. Om alle gegevens uit de HTML-tabel op te halen, moet je daarom een โโmacro ontwerpen die de gegevens als een verzameling verzamelt.
De verzameling wordt vervolgens in Excel geplakt. Volg de onderstaande stappen om het gewenste resultaat te bereiken.
Stap 2) Initialiseer het HTML-document in de subroutine.
Stap 3) Initialiseer het collectie-element in het HTML-document.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table")
Stap 4) Initialiseer de cellen van het Excel-blad met behulp van een geneste lus, zoals weergegeven.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table")
Excel kan worden geรฏnitialiseerd met behulp van het bereikkenmerk of het celkenmerk van het werkblad. Om de complexiteit van het VBA-script te verminderen, worden de gegevensverzamelingen geรฏnitialiseerd met het celkenmerk van werkblad 1 in de werkmap.
Zodra het macroscript gereed is, wijst u de subroutine toe aan een Excel-knop en sluit u de VBA-module af. Geef de knop de naam 'Vernieuwen' of een andere geschikte naam. In dit voorbeeld heet de knop 'Vernieuwen'.
Stap 5) Druk op de knop Vernieuwen om de onderstaande uitvoer te krijgen.
Stap 6) Vergelijk de resultaten in Excel met de resultaten in Internet Explorer.











