Web Scraping mit VBA

Inhaltsverzeichnis:

Anonim

Was ist Data Scraping?

Daten-Scraping ist die Technik, mit der gewünschte Informationen von einer HTML-Webseite in eine lokale Datei extrahiert werden können, die auf Ihrem lokalen Computer vorhanden ist. Normalerweise kann eine lokale Datei einer Excel-Datei, einer Word-Datei oder einer Microsoft Office-Anwendung entsprechen. Es hilft bei der Kanalisierung kritischer Informationen von der Webseite.

Das Daten-Scraping wird einfach, wenn täglich an einem forschungsbasierten Projekt gearbeitet wird, und ein solches Projekt ist ausschließlich vom Internet und der Website abhängig. Nehmen wir zur weiteren Veranschaulichung des Themas das Beispiel eines Daytraders, der ein Excel-Makro zum Abrufen von Marktinformationen von einer Finanzwebsite mithilfe von VBA in ein Excel-Blatt ausführt.

In diesem Tutorial lernen Sie:

  • Was ist Data Scraping?
  • Wie bereite ich ein Excel-Makro vor, bevor ich Data Scraping mit dem Internet Explorer durchführe?
  • Wie öffne ich den Internet Explorer mit Excel VBA?
  • Wie öffne ich eine Website im Internet Explorer mit VBA?
  • Wie kratzt man Informationen von der Website mit VBA?

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 Sie mit dem Scraping von Daten in Excel beginnen können.

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 unter Entwickler-Multifunktionsleiste die Option Visual Basic.

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 auf der Registerkarte "Tool" zu und verweisen Sie auf die Microsoft HTML-Objektbibliothek und das Microsoft-Internetsteuerelement.

Die folgenden Dateien beziehen sich auf das Modul, da es beim Öffnen des Internet Explorers hilft und die Entwicklung von Makroskripten erleichtert.

Jetzt kann die Excel-Datei mit dem Internet Explorer interagieren. Der nächste Schritt wäre die Einbindung von Makroskripten, die das Scraping von Daten 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 gezeigt

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocument

Schritt 2) Um den Internet Explorer mit VBA zu öffnen, schreiben Sie dh visible = true und drücken Sie F5.

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentIe.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-Exploer mithilfe von VBA

Schritt 1) Sobald Sie mit Excel VBA auf den Internet Explorer zugreifen können, umfasst der nächste Schritt den Zugriff auf eine Website mit VBA. Dies wird durch das Navigate-Attribut erleichtert, bei dem die URL als doppelte Anführungszeichen im Attribut übergeben werden muss. Befolgen Sie die folgenden Schritte wie angezeigt.

Sub test()Dim, ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate"http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETE

Schritt 2) - Drücken Sie F5, um das Makro auszuführen. Die folgende Webseite wird wie angezeigt geöffnet

Jetzt ist das Excel-Makro für die Ausführung der Scraping-Funktionen bereit. Der nächste Schritt würde anzeigen, wie die Informationen mit VBA aus dem Internet Explorer extrahiert werden können.

Wie kratzt man Informationen von der Website mit VBA?

Angenommen, der Daytrader möchte täglich auf die Daten der Website zugreifen. Jedes Mal, wenn der Daytrader den Klick auf die Schaltfläche drückt, sollte er die Marktdaten automatisch in Excel ziehen.

Auf der oben genannten Website müsste ein Element überprüft und die Struktur der Daten beobachtet werden.

Schritt 1) Greifen Sie auf den folgenden HTML-Quellcode zu, indem Sie Strg + Umschalt + I drücken

Der Quellcode wäre wie folgt: -

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.document

Wie zu sehen ist, sind die Daten als einzelne HTML-Tabelle strukturiert. Um ganze 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 InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.documentSet ecoll = doc.getElementsByTagName("table")

Schritt 4) Initialisieren Sie die Excel-Blattzellen mit Hilfe einer verschachtelten Schleife wie gezeigt

Das VBA-Modul würde wie folgt aussehen: -

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.documentSet ecoll = doc.getElementsByTagName("table")

Das Excel kann mithilfe des Bereichsattributs der Excel-Tabelle oder über das Zellenattribut der Excel-Tabelle initialisiert werden. Um die Komplexität des VBA-Skripts zu verringern, werden die Erfassungsdaten mit dem Excel-Zellenattribut von Blatt 1 in der Arbeitsmappe initialisiert.

Sobald das Makroskript fertig ist, übergeben Sie die Excel-Schaltfläche und weisen Sie sie zu. Beenden Sie das Modul von VBA. Beschriften Sie die Schaltfläche als Aktualisierung oder als geeigneten Namen, der damit initialisiert werden könnte. In diesem Beispiel wird die Schaltfläche als Aktualisierung initialisiert.

Schritt 5) Drücken Sie die Aktualisierungstaste, um die unten genannte Ausgabe zu erhalten

Schritt 6) Vergleichen Sie die Ergebnisse in Excel mit den Ergebnissen des Internet Explorers

Zusammenfassung:

  • Das Daten-Scraping ermöglicht es dem Benutzer, nur die Informationen herauszukratzen, die der Benutzer möchte.
  • Das Scraping kann mit dem Internet Explorer durchgeführt werden.
  • Der Prozess des Scrapings ist im Fall des Internet Explorers langsamer. Es liefert dem Benutzer jedoch die gewünschten Ergebnisse.
  • Das Schaben sollte mit äußerster Vorsicht und Vorsicht durchgeführt werden, da es das zum Schaben verwendete System beschädigen und zum Absturz bringen kann.
CompanyGroupPre Close (Rs)Current Price (Rs)% Change