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.

Bereiten Sie das Excel-Makro vor, bevor Sie das Data Scraping mit dem Internet Explorer durchführen

Schritt 2) Wählen Sie im Menüband „Entwickler“ die Option „Visual Basic“ aus.

Bereiten Sie das Excel-Makro vor, bevor Sie das Data Scraping mit dem Internet Explorer durchführen

Schritt 3) Fügen Sie ein neues Modul ein.

Bereiten Sie das Excel-Makro vor, bevor Sie das Data Scraping mit dem Internet Explorer durchführen

Schritt 4) Initialisieren Sie eine neue Unterroutine

Sub test()
End sub

Das Modul würde sich wie folgt ergeben: –

Bereiten Sie das Excel-Makro vor, bevor Sie das Data Scraping mit dem Internet Explorer durchführen

Schritt 5) Greifen Sie auf die Referenzoption unter der Registerkarte „Werkzeug“ und „Referenz“ zu Microsoft HTML-Objektbibliothek und Microsoft Internetkontrolle.

Die folgendenwing Dateien müssen auf das Modul verwiesen werden, da es beim Öffnen des Internet Explorers hilft und die Entwicklung von Makroskripten erleichtert.

Bereiten Sie das Excel-Makro vor, bevor Sie das Data Scraping mit dem Internet Explorer durchführen

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: –

Öffnen Sie den Internet Explorer mit Excel VBA

Öffnen Sie den Internet Explorer mit Excel VBA

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, bei dem die URL als übergeben werden muss double Anführungszeichen im Attribut. Folgen Sie den folgenden Schrittenwing Schritte wie angezeigt.

Sub test()
Dim, ie As New InternetExplorer
Dim doc As New HTMLDocument
Dim ecoll As Object
ie.Visible = True
ie.navigate"http://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 folgendenwing Die Webseite würde wie angezeigt geöffnet

Öffnen Sie die Website im Internet Explorer mit VBA

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 + Umschalt + I drücken

<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 "http://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 "http://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 "http://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")

Das Excel kann über das Bereichsattribut der Excel-Tabelle oder über das Zellenattribut der Excel-Tabelle initialisiert werden. Um die Kom zu reduzierenplexAufgrund der Funktionalität des VBA-Skripts werden die Sammlungsdaten mit dem Excel-Zellenattribut von Blatt 1 in der Arbeitsmappe 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.

Scrapen Sie Informationen von der Website mit VBA

Schritt 5) Klicken Sie auf die Schaltfläche „Aktualisieren“, um die unten stehende Ausgabe zu erhalten

Scrapen Sie Informationen von der Website mit VBA

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

Scrapen Sie Informationen von der Website mit VBA

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.