Selenium VBA Excel-handleiding (Chrome WebScrap)ping)

⚡ Slimme samenvatting

Selenium VBA in Excel automatiseert Google Chrome om gegevens van HTML-webpagina's te schrapen met behulp van de Selenium Gebruik de typebibliotheek en WebDriver-methoden om een ​​site te openen, tabelelementen te lokaliseren op basis van klasse en tag, en de resultaten in werkbladcellen te schrijven.

  • 🧰 Selenium Webstuurprogramma: VBA gebruikt de Selenium typebibliotheek om aan te sturen Google Chrome voor scraping.
  • 📚 Typebibliotheek: De Selenium De typebibliotheek moet worden toegevoegd voordat WebDriver-objecten kunnen worden gedeclareerd.
  • 🚀 Beginnen en verkrijgen: De Start-methode opent Chrome en de Get-methode laadt de doelwebsite. URL.
  • 🔎 Elementzoekers: FindElementByClass en FindElementsByTag lokaliseren de tabelkop en de gegevenscellen.
  • 📊 Schrijf naar cellen: Een geneste For Each-lus schrijft kop- en rijwaarden naar werkbladcellen.
  • 🤖 AI-assistentie: AI-copiloten helpen bij het schrijven, debuggen en onderhouden van software. Selenium VBA-scripts worden aangepast naarmate websites wijzigen.

Selenium VBA Excel-handleiding

Wat is DataScrap?ping gebruik Selenium?

Selenium is een automatiseringstool die scraw vergemakkelijktping informatie van HTML-webpagina's, het uitvoeren van webscrapingping with Google ChromeIn Excel, de Selenium Met behulp van een typebibliotheek kan VBA een echte browser aansturen in plaats van de verouderde Internet Explorer-engine.

Hoe bereid je een Excel-macro voor voordat je gegevens opslaat?ping gebruik Selenium

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 gebruik Selenium

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

Bereid een Excel-macro voor voordat u gegevens opslaat.ping gebruik Selenium

Stap 3) Plaats een nieuwe module.

Bereid een Excel-macro voor voordat u gegevens opslaat.ping gebruik Selenium

Stap 4) Initialiseer een nieuwe subroutine en geef deze de naam test2.

Sub test2()
End Sub

Het resultaat in de module zou als volgt zijn:

Bereid een Excel-macro voor voordat u gegevens opslaat.ping gebruik Selenium

Stap 5) Ga naar de optie 'Referentie' onder het tabblad 'Tools' en raadpleeg de referentie. Selenium Typebibliotheek. Deze bibliotheek helpt bij het openen van gegevenstypen. Google Chrome en maakt macroscripting mogelijk.

Referentie Selenium Typebibliotheek in Excel VBA

Het Excel-bestand is nu klaar voor gebruik in de browser. De volgende stap is het toevoegen van een macroscript dat het scannen van gegevens vergemakkelijkt.ping in HTML.

Hoe te openen Google Chrome VBA gebruiken

Hieronder volgen de stappen om te openen Google Chrome met behulp van VBA.

Stap 1) Declareer en initialiseer de variabelen in de subroutine zoals hieronder weergegeven.

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer

Stap 2) Openen Google Chrome gebruik Selenium En schrijf in VBA het stuurprogramma. Start Chrome en druk op F5.

Dit is de code:

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
driver.Start "Chrome"
Application.Wait Now + TimeValue("00:00:20")
End Sub

De module zou het volgende resultaat opleveren:

Open Google Chrome met behulp van VBA

Hoe open je een website in Google Chrome VBA gebruiken

Zodra je toegang hebt Google Chrome De volgende stap is het benaderen van een website met behulp van VBA. Dit wordt mogelijk gemaakt door de Get-functie, waarbij de URL wordt tussen dubbele aanhalingstekens doorgegeven.

De module zou er als volgt uitzien:

Open de website in Google Chrome met behulp van VBA

Druk op F5 om de macro uit te voeren. De volgende webpagina wordt geopend in Google Chrome zoals getoond.

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
driver.Start "Chrome"
driver.Get "https://demo.guru99.com/test/web-table-element.php"
Application.Wait Now + TimeValue("00:00:20")
End Sub

Open de website in Google Chrome met behulp van VBA

De Excel-macro is nu klaar om de scan uit te voeren.ping taken. De volgende stap laat zien hoe de informatie kan worden geëxtracted door toepassing Selenium en 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.

Op de bovenstaande website is het nodig om een ​​element te inspecteren en te bekijken hoe de gegevens zijn gestructureerd. Open de broncode van de onderstaande HTML 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>

Zoals u ziet, zijn de gegevens gestructureerd als één enkele HTML-tabel. Om alle gegevens uit de HTML-tabel op te halen, moet u daarom een ​​macro ontwerpen die de koptekstinformatie en de bijbehorende gegevens van de tabel ophaalt. Voer de onderstaande taken uit.

Stap 1) Formuleer een `for`-lus die de HTML-headerinformatie als een verzameling doorloopt. Selenium De driver lokaliseert de headerinformatie met behulp van de methoden FindElementByClass() en FindElementByTag(), zoals weergegeven.

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get "https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th

Stap 2) Vervolgens wordt de Selenium De driver vindt de tabelgegevens op een vergelijkbare manier. Schrijf de volgende code:

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get "https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th
For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr")
columnC = 1
For Each td In tr.FindElementsByTag("td")
Sheet2.Cells(rowc, columnC).Value = td.Text
columnC = columnC + 1
Next td
rowc = rowc + 1
Next tr
Application.Wait Now + TimeValue("00:00:20")
End Sub

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 2 in de werkmap. Het tekstkenmerk zorgt ervoor dat de tekst onder een HTML-tag wordt geplaatst.

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get "https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th
For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr")
columnC = 1
For Each td In tr.FindElementsByTag("td")
Sheet2.Cells(rowc, columnC).Value = td.Text
columnC = columnC + 1
Next td
rowc = rowc + 1
Next tr
Application.Wait Now + TimeValue("00:00:20")
End Sub

De VBA-module zou er als volgt uitzien:

Informatie van de website schrapen met VBA

Stap 3) 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 4) Druk op de knop Vernieuwen om de onderstaande uitvoer te krijgen.

Informatie van de website schrapen met VBA

Stap 5) Vergelijk de resultaten in Excel met de resultaten in Google Chrome.

Informatie van de website schrapen met VBA

Veelgestelde vragen

Excel heeft de Selenium Typebibliotheek, geïnstalleerd via SeleniumBasic, waarnaar verwezen wordt in de VBA-editor onder Extra, Verwijzingen. Deze bibliotheek biedt het WebDriver-object en methoden zoals Start, Get en FindElementByClass die gebruikt worden om de browser te automatiseren.

Selenium VBA kan aansturen Google Chrome, Mozilla Firefox, Microsoft Edgeen Internet Explorer. Chrome is de meest gebruikte browser. Elke browser heeft een bijbehorende WebDriver nodig, en dezelfde VBA-code kan met minimale aanpassingen tussen browsers worden gewisseld.

De Internet Explorer-methode Maakt gebruik van de HTML Object Library en is alleen compatibel met Internet Explorer, wat inmiddels verouderd is. Selenium Het is een krachtige extensie voor moderne browsers zoals Chrome, biedt ondersteuning voor meerdere browsers en zorgt voor een betrouwbaardere plaatsing van elementen.

Ja. AI-copiloten kunnen genereren Selenium De AI genereert VBA-code op basis van een beschrijving, stelt elementlocators voor en helpt bij het debuggen van fouten. Wanneer een website verandert, kan de AI bijgewerkte selectors voorstellen, waardoor de handmatige inspanning voor het onderhoud van de website wordt verminderd.ping macro's.

AI voegt intelligente elementdetectie, natuurlijke taalcommando's en zelfherstellende locators toe aan browserautomatisering. Deze machine learning-functies zorgen ervoor dat tools zich automatisch aanpassen aan lay-outwijzigingen, waardoor scraping wordt vereenvoudigd.ping en testen die robuuster zijn dan vaste, hardgecodeerde scripts.

Vat dit bericht samen met: