WebDataExtractor
- Utilitys
- Stanislav Korotky
- Version: 1.1
- Aktualisiert: 23 November 2021
- Aktivierungen: 5
Hierbei handelt es sich um einen nicht handelsüblichen Experten, der unstrukturierte Webseiten in strukturierte Datentabellen umwandelt. Er lädt eine HTML-Datei herunter und analysiert sie, erstellt dann das DOM(Document Object Model) für sie und wendet schließlich bestimmte CSS-Selektoren(Cascading Style Sheets) für die erforderlichen Felder an und extrahiert Daten für sie. Sie können es als einen leistungsstarken und hochgradig anpassbaren HTML-zu-CSV-Konverter(Comma-Separated Values) betrachten.
Der EA kann Webseiten von entfernten Websites (mit MetaTrader's WebRequest) oder lokale Dateien verarbeiten. Um WebRequest richtig zu nutzen, stellen Sie sicher, dass Sie die entsprechenden Domains in den Optionen des Expert Advisors hinzugefügt haben.
Die Demoversion des Experten oder seine Vollversion, die im Testprogramm läuft, kann aufgrund der MetaTrader-Einschränkung keine WebRequests verwenden. Nur lokale Dateien sind von der Testversion aus zugänglich.
Parameter
- URL - Adresse der Webseite (beginnt mit http:// oder https://) oder lokaler Dateiname, der geladen werden soll (muss im HTML-Format sein);
- SaveName - Name der Ausgabedatei (wird im CSV-Format sein);
- TimerSeconds - Zeitspanne in Sekunden, um die URL neu zu laden und erneut zu verarbeiten; wenn 0 - führt der Experte die Aufgabe nur einmal aus und beendet sich dann;
- TriggerVariable - optionale globale Variable, die mit dem Timer geprüft werden soll; wenn sie angegeben ist, prüft der Experte, ob die Variable existiert: wenn ja, beginnt EA mit der Verarbeitung und entfernt die Variable, wenn nicht, überspringt EA diesen Timer-Aufruf und wartet auf das nächste Mal, um erneut zu prüfen;
- RowSelector - CSS-Selektor für die Tabellenzeile;
- ColumnSettingsFile - Datei im CSV-Format mit Selektoren für Spalten (siehe Kommentare für Details);
- SubstitutionSettingsFile - optionale Datei im CSV-Format für Datenersetzungsregeln (siehe Kommentare für Details);
- TestQuery - testet einen CSS-Selektor für eine Zeile;
- TestSubQuery - testet einen CSS-Selektor für ein Feld in der Zeile;
- LogXXX - aktiviert/deaktiviert die XXX-Protokollierungsoption;
Hauptprinzipien
Um die Datenextraktion mit diesem Experten zu starten, müssen Sie den Quellcode (HTML) der Ziel-Webseite untersuchen. Dies kann in jedem modernen Browser mit Hilfe der eingebauten Tools für Webentwickler erfolgen. In Chrome können Sie beispielsweise das Fenster "Entwicklertools" öffnen, indem Sie auf die Schaltfläche "Einstellungen" (in der oberen rechten Ecke des Hauptfensters) klicken und dann im Dropdown-Menü "Tools" -> "Entwicklertools" wählen (die Menüpunkte können je nach Browser-Version variieren). Weitere Details finden Sie in der offiziellen DevTools-Übersicht. Wichtig für uns ist hier der Abschnitt Inspecting the DOM.
Der Benutzer sollte alle Datenfelder, die ihn interessieren, in der Webseite ausfindig machen und die entsprechenden DOM-Elemente im HTML-Quelltext nachschlagen. Anhand der spezifischen Attribute der DOM-Elemente sollte man geeignete CSS-Selektoren ausarbeiten, die für jedes spezifische Datenfeld einen eindeutigen Wert festlegen. Das Entwicklerfenster bietet eine Konsolenbox, in der Sie CSS-Selektoren direkt ausprobieren können. Bitte stellen Sie sicher, dass Sie nur Selektoren ausprobieren, die vom Experten unterstützt werden.
Alternativ können Sie die DOM-Protokollierung im Experten aktivieren(LogDomElements) und dann die Ausgabe im Expertenprotokoll von MetaTrader studieren. Bei dieser Methode fehlt es an Interaktivität (Sie können Selektoren nicht sofort ausprobieren), aber Sie müssen nicht mit externen Tools arbeiten. Sie können Selektoren mit den entsprechenden Eingabeparametern(TestQuery und TestSubQuery) testen. Es ist ratsam, solche Experimente mit einer lokalen Datei durchzuführen(die URL sollte auf eine Datei statt auf eine Internetadresse verweisen). Sie können eine Webseite von einer Website in eine Datei herunterladen, indem Sie die folgenden Parameter verwenden: URL - Internetadresse der Seite, SaveName - Name der zu schreibenden lokalen Datei (eine eventuell vorhandene Datei wird überschrieben), RowSelector sollte leer sein.
Unterstützte CSS-Selektoren
Die Liste der unterstützten Selektoren finden Sie in den Kommentaren.
Beispiele
Beispiele finden Sie in den Kommentaren zu diesem Produkt. Für jedes Beispiel kann ein HTML-Fragment gefunden werden, das mit Kommentaren für Erklärungen versehen und zur besseren Lesbarkeit formatiert wurde.
