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.

  • ๐Ÿงฐ VBA-automatisering: VBA stuurt Internet Explorer vanuit Excel aan om een โ€‹โ€‹webpagina te laden en de HTML ervan te lezen.
  • ๐Ÿ“š Vereiste referenties: Microsoft HTML-objectbibliotheek en Microsoft In het project moet naar internetbesturingselementen worden verwezen.
  • ๐ŸŒ Navigatiemethode: De Navigate-methode opent een doel URLEn de code wacht tot de pagina gereed is.
  • ๐Ÿงฑ HTML-tabelanalyse: getElementsByTagName leest de tabel zodat er door de rijen en cellen ervan kan worden geloopt.
  • ๐Ÿ“Š Schrijf naar cellen: De verzamelde waarden worden in werkbladcellen geschreven, vaak achter een knop 'Vernieuwen'.
  • ๐Ÿค– AI-assistentie: AI-tools en copiloten genereren nu scrapping Code en pas selectors aan wanneer lay-outs veranderen.

VBA WebScrping naar Excel

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.

Bereid een Excel-macro voor voordat u gegevens opslaat.ping Internet Explorer gebruiken

Stap 2) Selecteer de optie Visual Basic in het tabblad Ontwikkelaar.

Bereid een Excel-macro voor voordat u gegevens opslaat.ping Internet Explorer gebruiken

Stap 3) Plaats een nieuwe module.

Bereid een Excel-macro voor voordat u gegevens opslaat.ping Internet Explorer gebruiken

Stap 4) Een nieuwe subroutine initialiseren.

Sub test()
End Sub

De module zou het volgende resultaat opleveren:

Bereid een Excel-macro voor voordat u gegevens opslaat.ping Internet Explorer gebruiken

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.

Referentie Microsoft HTML-objectbibliotheek en internetbesturingselementen

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:

Open Internet Explorer met Excel VBA

Open Internet Explorer met Excel VBA

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.

Een website openen in Internet Explorer met behulp van VBA

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'.

Informatie van de website schrapen met VBA

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

Informatie van de website schrapen met VBA

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

Informatie van de website schrapen met VBA

Veelgestelde vragen

In de VBA-editor onder Extra, Referenties zijn twee verwijzingen nodig: de Microsoft HTML-objectbibliotheek en Microsoft Internetbesturingselementen. Hiermee kan VBA Internet Explorer openen en naar een bepaalde pagina navigeren. URLen lees de HTML-elementen van de pagina.

Het hangt af van de website. Veel sites beperken geautomatiseerde scraping.ping Lees hun servicevoorwaarden eerst door en vermijd het verzamelen van persoonlijke of auteursrechtelijk beschermde gegevens.ping Openbare, toegestane gegevens voor persoonlijke analyse vormen over het algemeen een lager risico.

Internet Explorer wordt niet meer ondersteund, daarom gebruiken moderne projecten de Selenium VBA aanpak, die Chrome aandrijft, Firefox, of Rand. Selenium Biedt ondersteuning voor meerdere browsers en een betrouwbaardere plaatsing van elementen op bestaande websites.

Ja. Door AI aangedreven scrapers en copiloten kunnen datavelden identificeren en bijvoorbeeld resultaten genereren.tracDe machine learning-modellen analyseren de code en passen zich automatisch aan lay-outwijzigingen aan. Ze analyseren ook ongestructureerde pagina's, waardoor de handmatige inspanning voor het schrijven en onderhouden van code wordt verminderd.ping scripts.

AI gebruikt computervisie en natuurlijke taalverwerking om tabellen, prijzen en tekst op een pagina te herkennen, zelfs zonder vaste selectors. Deze intelligente extraction maakt krassenping Een website is veerkrachtiger wanneer de structuur ervan verandert.

Vat dit bericht samen met: