Web Scraping mit VBA
Was ist Data Scraping?
Data Scraping ist die Technik, die beim Extrahieren gewünschter Informationen von einer HTML-Webseite in eine lokale Datei auf Ihrem lokalen Computer hilft. Normalerweise könnte eine lokale Datei einer Excel-Datei, einer Word-Datei oder einer anderen Datei entsprechen Microsoft Büroanwendung. Es hilft bei der Kanalisierung wichtiger Informationen von der Webseite.
Das Daten-Scraping wird einfacher, wenn man täglich an einem forschungsbasierten Projekt arbeitet und ein solches Projekt ausschließlich auf das Internet und die Website angewiesen ist. Nehmen wir zur weiteren Veranschaulichung des Themas das Beispiel eines Daytraders, der mithilfe von VBA ein Excel-Makro ausführt, um Marktinformationen von einer Finanzwebsite in eine Excel-Tabelle zu übertragen.
Wie bereite ich ein Excel-Makro vor, bevor ich Data Scraping mit dem Internet Explorer durchführe?
Es gibt bestimmte Voraussetzungen, die für die Excel-Makrodatei erfüllt sein müssen, bevor mit dem Daten-Scraping-Prozess in Excel begonnen werden kann.
Diese Voraussetzungen sind wie folgt: –
Schritt 1) Öffnen Sie ein Excel-basiertes Makro und greifen Sie auf die Entwickleroption von Excel zu.
Schritt 2) Wählen Sie im Menüband „Entwickler“ die Option „Visual Basic“ aus.
Schritt 3) Fügen Sie ein neues Modul ein.
Schritt 4) Initialisieren Sie eine neue Unterroutine
Sub test() End sub
Das Modul würde sich wie folgt ergeben: –
Schritt 5) Greifen Sie auf die Referenzoption unter der Registerkarte „Werkzeug“ und „Referenz“ zu Microsoft HTML-Objektbibliothek und Microsoft Internetkontrolle.
Die folgenden Dateien müssen auf das Modul verwiesen werden, da sie beim Öffnen des Internet Explorers helfen und die Entwicklung von Makroskripten erleichtern.
Jetzt ist die Excel-Datei bereit für die Interaktion mit dem Internet Explorer. Der nächste Schritt wäre die Einbindung von Makroskripten, die das Daten-Scraping in HTML erleichtern würden.
Wie öffne ich den Internet Explorer mit Excel VBA?
Schritt 1) Initialisieren Sie die Variable in den Unterprogrammen wie unten dargestellt
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument
Schritt 2) Um den Internet Explorer mit VBA zu öffnen, schreiben Sie dh sichtbar = wahr und drücken Sie F5.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Ie.visible=true
Das Modul würde wie folgt aussehen: –
Wie öffne ich eine Website im Internet Explorer mit VBA?
Hier finden Sie Schritte zum Öffnen einer Website im Internet Explorer mithilfe von VBA
Schritt 1) Sobald Sie mit Excel VBA auf den Internet Explorer zugreifen können, besteht der nächste Schritt darin, mit VBA auf eine Website zuzugreifen. Dies wird durch das Navigate-Attribut erleichtert, wobei die URL im Attribut als Anführungszeichen übergeben werden muss. Befolgen Sie die folgenden Schritte wie angezeigt.
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
Schritt 2) - Drücken Sie F5, um das Makro auszuführen. Die folgende Webseite wird wie abgebildet geöffnet
Jetzt ist das Excel-Makro bereit für die Ausführung der Scraping-Funktionen. Im nächsten Schritt wird gezeigt, wie die Informationen mithilfe von VBA aus dem Internet Explorer extrahiert werden können.
Wie entferne ich mit VBA Informationen von einer Website?
Angenommen, der Daytrader möchte täglich auf die Daten der Website zugreifen. Jedes Mal, wenn der Daytrader die Schaltfläche „Klicken“ drückt, sollten die Marktdaten automatisch in Excel übernommen werden.
Von der oben genannten Website aus wäre es notwendig, ein Element zu untersuchen und zu beobachten, wie die Daten strukturiert sind.
Schritt 1) Greifen Sie auf den folgenden HTML-Quellcode zu, indem Sie Strg + drücken Shift + I
<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>
Der Quellcode würde wie folgt lauten: –
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
Wie man sieht, sind die Daten als einzelne HTML-Tabelle strukturiert. Um die gesamten Daten aus der HTML-Tabelle abzurufen, müsste daher ein Makro entworfen werden, das die Daten in Form einer Sammlung sammelt.
Die Sammlung würde dann in Excel eingefügt. Um die gewünschten Ergebnisse zu erzielen, führen Sie die folgenden Schritte aus: –
Schritt 2) Initialisieren Sie das HTML-Dokument in der Unterroutine
Das VBA-Modul würde wie folgt aussehen: –
Schritt 3) Initialisieren Sie das im HTML-Dokument vorhandene Sammlungselement
Das VBA-Modul würde wie folgt aussehen: –
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")
Schritt 4) Initialisieren Sie die Excel-Tabellenzellen mit Hilfe einer verschachtelten Schleife wie gezeigt
Das VBA-Modul würde wie folgt aussehen: –
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 kann mit dem Bereichsattribut des Excel-Blatts oder über das Zellenattribut des Excel-Blatts initialisiert werden. Um die Komplexität des VBA-Skripts zu reduzieren, werden die Sammlungsdaten mit dem Excel-Zellenattribut des in der Arbeitsmappe vorhandenen Blatts 1 initialisiert.
Sobald das Makroskript fertig ist, übergeben Sie die Unterroutine, weisen Sie sie der Excel-Schaltfläche zu und verlassen Sie das VBA-Modul. Beschriften Sie die Schaltfläche mit „Aktualisieren“ oder einem beliebigen geeigneten Namen, der mit ihr initialisiert werden könnte. In diesem Beispiel wird die Schaltfläche als Aktualisierung initialisiert.
Schritt 5) Klicken Sie auf die Schaltfläche „Aktualisieren“, um die unten stehende Ausgabe zu erhalten
Schritt 6) Vergleichen Sie die Ergebnisse in Excel mit den Ergebnissen des Internet Explorers
Zusammenfassung
- Durch das Daten-Scraping kann der Benutzer nur die Informationen herauskratzen, die er möchte. Um die besten Tools für diesen Zweck zu finden, werfen Sie einen Blick auf diese Liste von Web-Scraping-Tools, mit denen Sie die gewünschten Informationen effizient von verschiedenen Websites extrahieren können.
- Das Scraping kann mit dem Internet Explorer durchgeführt werden.
- Der Scraping-Vorgang ist beim Internet Explorer langsamer; Es liefert dem Benutzer jedoch die gewünschten Ergebnisse.
- Das Schaben sollte mit absoluter Sorgfalt und Vorsicht durchgeführt werden, da es das zum Schaben verwendete System beschädigen und zum Absturz bringen kann.