Excel VBA en Selenium gebruiken

Wat is Data Scraping met selenium?

Selenium kan worden geclassificeerd als de automatiseringstool die het mogelijk maakt om informatie van de HTML-webpagina's te schrapen om webscraping uit te voeren met behulp van Google Chrome.

In deze tutorial leer je:

Hoe Excel Macro voorbereiden voordat u Data Scraping uitvoert met Selenium?

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 en noem deze test2. |__+_|

Hieronder volgen de resultaten in de module: -

Stap 5) Open de referentie-optie onder de tool-tab en verwijs naar de Selenium-typebibliotheek. De volgende bibliotheken moeten naar de module worden verwezen omdat deze helpt bij het openen van Google Chrome en de ontwikkeling van macroscripts vergemakkelijkt.

Nu is het Excel-bestand klaar om te communiceren met de internetverkenner. De volgende stappen zouden zijn om een ​​macroscript op te nemen dat het schrapen van gegevens in HTML zou vergemakkelijken.

Hoe Google Chrome te openen met VBA?

Hier zijn de stappen om Google Chrome te openen met VBA

Stap 1) Declareer en initialiseer de variabelen in de subroutine zoals hieronder weergegeven |_+_|

Stap 2) Om google chrome te openen met selenium en VBA, schrijf driver.start 'chrome' en druk op F5 .

Het volgende zou de code zijn. |__+_|

De module zou als volgt resulteren: -

Hoe een website openen in Google Chrome met VBA?

Zodra u toegang hebt tot Google Chrome met VBA, zou de volgende stap zijn om de toegang tot een website met VBA op te nemen. Dit wordt vergemakkelijkt door de get-functie waarbij de URL als dubbele aanhalingstekens in het attribuut moet worden doorgegeven.

Volg de volgende stappen zoals weergegeven:

De module ziet er als volgt uit: -

Druk op F5 om de macro uit te voeren.

De volgende webpagina wordt geopend in Google Chrome zoals weergegeven |__+_|

Nu is de Excel-macro klaar met betrekking tot het uitvoeren van de scraping-taken. De volgende stap zou laten zien hoe de informatie kan worden geëxtraheerd door selenium en VBA toe te passen.

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. 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 kopinformatie van de HTML-tabel en de bijbehorende gegevens die bij de tabel horen, ophaalt. Voer de volgende taken uit zoals weergegeven: -

Stap 1) Formuleer een for-lus die als een verzameling door de HTML-headerinformatie loopt. De selenium-driver moet de header-informatie van de HTML-tabel vinden. Om dit te doen, gebruiken we de methode FindElementByClass() en FindElementByTag() om de taak uit te voeren zoals weergegeven

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

Stap 2) Vervolgens zou het seleniumstuurprogramma de tabelgegevens lokaliseren met behulp van de vergelijkbare aanpak, zoals hierboven vermeld. Je moet de volgende code schrijven: - |_+_|

De vba-module ziet er als volgt uit: -

De Excel kan worden geïnitialiseerd door middel van het Range attribuut van het Excel-blad of via het Cellen-attribuut van het Excel-blad. Om de complexiteit van het VBA-script te verminderen, worden de verzamelingsgegevens geïnitialiseerd naar het Excel-celkenmerk van het blad 2 dat in de werkmap aanwezig is. Verder helpt het tekstkenmerk om de tekstinformatie onder de HTML-tag te plaatsen. |__+_|

De vba-module ziet er als volgt uit: -

Stap 3) 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 vernieuwen.

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

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

Samenvatting:

  • Selenium kan worden geclassificeerd als de automatiseringstool die het mogelijk maakt om informatie van de HTML-webpagina's te schrapen om webscraping uit te voeren met behulp van Google Chrome.
  • Het schrapen op internet moet zorgvuldig worden uitgevoerd.
  • Het is normaal gesproken in strijd met de voorwaarden van de website om informatie weg te schrapen.
  • Wanneer het schrapen via selenium wordt gedaan, biedt het ondersteuning voor meerdere browsers.
  • Met andere woorden, de schraper kan vergelijkbare taken uitvoeren als schrapen via Firefox, internetverkenner.