Selenium VBA Excel-Tutorial (Chrome Web Scraping)ping)
โก Intelligente Zusammenfassung
Selenium VBA in Excel automatisiert Google Chrome um Daten von HTML-Webseiten zu extrahieren, mithilfe der Selenium Methoden der Typbibliothek und des WebDrivers zum รffnen einer Website, zum Auffinden von Tabellenelementen anhand von Klasse und Tag und zum Schreiben der Ergebnisse in Tabellenzellen.

Was ist Data Scraping?ping Die Verwendung von Selenium?
Selenium ist ein Automatisierungstool, das das Scraping erleichtert.ping Informationen aus HTML-Webseiten, durchgefรผhrtes Web-Scrapingping und Google ChromeIn Excel, Selenium Mithilfe der Typbibliothek kann VBA einen echten Browser anstelle der veralteten Internet Explorer-Engine ansteuern.
Wie man das Excel-Makro vor dem Daten-Scrap vorbereitetping Die Verwendung von Selenium
Es gibt bestimmte Voraussetzungen, die an der Excel-Makrodatei erfรผllt sein mรผssen, bevor mit dem Daten-Scraping begonnen werden kann.ping
Folgende Voraussetzungen mรผssen erfรผllt sein:
Schritt 1) รffnen Sie ein Excel-basiertes Makro und greifen Sie auf die Entwickleroption von Excel zu.
Schritt 2) Wรคhlen Sie unter dem Menรผband โEntwicklertoolsโ die Option โVisual Basicโ aus.
Schritt 3) Fรผgen Sie ein neues Modul ein.
Schritt 4) Erstellen Sie eine neue Unterroutine und nennen Sie sie test2.
Sub test2() End Sub
Das Ergebnis im Modul sรคhe wie folgt aus:
Schritt 5) Greifen Sie unter der Registerkarte โToolsโ auf die Option โReferenzโ zu und verweisen Sie auf die folgende Datei: Selenium Typbibliothek. Diese Bibliothek hilft beim รffnen von Typen. Google Chrome und erleichtert die Erstellung von Makroskripten.
Die Excel-Datei ist nun bereit fรผr die Interaktion mit dem Browser. Im nรคchsten Schritt wird ein Makro-Skript eingebunden, das das Daten-Scraping ermรถglicht.ping in HTML.
Wie รffnen Google Chrome Mit VBA
Hier sind die Schritte zum รffnen Google Chrome mit VBA.
Schritt 1) Deklarieren und initialisieren Sie die Variablen in der Subroutine wie unten gezeigt.
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer
Schritt 2) รffnen Google Chrome mit automatisierten Selenium und VBA, schreiben Sie Treiber.Starten Sie โChromeโ und drรผcken Sie F5.
Der Code wรคre wie folgt:
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
Das Modul wรผrde sich wie folgt darstellen:
Wie man eine Website erรถffnet Google Chrome Mit VBA
Sobald Sie Zugriff haben Google Chrome Der nรคchste Schritt bei der Verwendung von VBA ist der Zugriff auf eine Website mithilfe von VBA. Dies wird durch die Get-Funktion ermรถglicht, wobei die URL wird als doppelte Anfรผhrungszeichen รผbergeben.
Das Modul wรผrde wie folgt aussehen:
Drรผcken Sie F5, um das Makro auszufรผhren. Die folgende Webseite wรผrde sich รถffnen. Google Chrome wie gezeigt.
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
Das Excel-Makro ist nun bereit, den Scrap durchzufรผhren.ping Aufgaben. Der nรคchste Schritt zeigt, wie die Informationen extrahiert werden kรถnnen.tracdurch Anwendung Selenium und VBA.
Wie man mit VBA Informationen von einer Website extrahiert
Angenommen, ein Daytrader mรถchte tรคglich auf die Daten der Website zugreifen. Jedes Mal, wenn er auf den Button klickt, sollen die Marktdaten automatisch in Excel importiert werden.
Auf der oben genannten Website muss ein Element untersucht werden, um die Datenstruktur zu analysieren. Der Quellcode des unten stehenden HTML-Codes kann durch Drรผcken von Strg + aufgerufen werden. Shift + Ich
<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>
Wie Sie sehen, sind die Daten in einer einzelnen HTML-Tabelle strukturiert. Um die gesamten Daten aus der HTML-Tabelle abzurufen, mรผssen Sie daher ein Makro erstellen, das die Kopfzeileninformationen und die zugehรถrigen Daten extrahiert. Fรผhren Sie die folgenden Schritte aus.
Schritt 1) Formulieren Sie eine For-Schleife, die die HTML-Header-Informationen als Sammlung durchlรคuft. Selenium Der Treiber ermittelt die Header-Informationen mithilfe der Methoden FindElementByClass() und FindElementByTag(), wie dargestellt.
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
Schritt 2) Als nรคchstes Selenium Der Treiber findet die Tabellendaten mit einem รคhnlichen Ansatz. Schreiben Sie folgenden 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 kann mithilfe des Bereichs- oder des Zellenattributs des Tabellenblatts initialisiert werden. Um die Komplexitรคt des VBA-Skripts zu reduzieren, werden die Sammlungsdaten im Zellenattribut von Tabellenblatt 2 der Arbeitsmappe initialisiert. Das Textattribut ermรถglicht es, den Text innerhalb eines HTML-Tags zu platzieren.
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
Das VBA-Modul wรผrde wie folgt aussehen:
Schritt 3) Sobald das Makroskript fertig ist, weisen Sie die Subroutine einer Excel-Schaltflรคche zu und beenden Sie das VBA-Modul. Benennen Sie die Schaltflรคche beispielsweise mit โAktualisierenโ. In diesem Beispiel heiรt die Schaltflรคche โAktualisierenโ.
Schritt 4) Drรผcken Sie die Schaltflรคche โAktualisierenโ, um die unten stehende Ausgabe zu erhalten.
Schritt 5) Vergleichen Sie die Ergebnisse in Excel mit den Ergebnissen in Google Chrome.












