read_transactions.webcrawler.ariva

author:

Tim Häberlein

version:

2.0

date:

21.10.2025

organisation:

TU Dresden, FZM

ArivaCrawler

Crawler für Kursdaten von ariva.de.

Verwendung:

from read_transactions.webcrawler.ariva import ArivaCrawler

with ArivaCrawler() as crawler:

crawler.login() crawler.download_data() crawler.process_data() crawler.save_data()

Attributes

Classes

ArivaCrawler

Crawler für Kursdaten von ariva.de.

Module Contents

class read_transactions.webcrawler.ariva.ArivaCrawler(*args, **kwargs)

Bases: read_transactions.webcrawler.WebCrawler

Crawler für Kursdaten von ariva.de.

Der Crawler automatisiert den Login auf ariva.de, öffnet für alle in der Konfiguration hinterlegten Wertpapiere die Kursseiten, lädt CSV-Dateien herunter und führt sie zu einem einheitlichen Datensatz zusammen.

Ablauf:
  1. Optionaler Login (sofern Zugangsdaten vorhanden)

  2. Aufruf aller in der Konfiguration definierten URLs

  3. Auswahl von Währung, Zeitraum und Trenner

  4. Start des CSV-Downloads

  5. Zusammenführung und Bereinigung der Daten

Voraussetzungen:
  • gültige Zugangsdaten und URL-Mappings in config.yaml

  • funktionierender Selenium-WebDriver (Edge, Chrome oder Firefox)

CLI-Beispiel:

`bash readtx run ariva --start 01.01.2024 --end 31.03.2024 --log_level DEBUG `

Parameter

logfilestr, optional

Pfad zu einer Logdatei. Wenn None, wird nur in die Konsole geloggt.

output_pathstr, optional

Verzeichnis, in dem die verarbeiteten Daten gespeichert werden. Standard: out.

start_datestr | pandas.Timestamp | datetime.date, optional

Startdatum für den Download (Format: dd.mm.yyyy). Standard: heutiges Datum.

end_datestr | pandas.Timestamp | datetime.date, optional

Enddatum für den Download (Format: dd.mm.yyyy). Standard: sechs Monate vor start_date.

logging_levelstr, optional

Log-Level der Crawler-Instanz (z. B. „DEBUG“, „INFO“, „WARNING“). Standard: INFO.

global_log_levelstr, optional

Globales Log-Level für das gesamte Paket (Standard: INFO).

browserstr, optional

Zu verwendender Browser-Treiber (edge, chrome oder firefox). Standard: edge.

headlessbool, optional

Falls True, wird der Browser im Hintergrundmodus gestartet. Standard: False.

user_agentstr, optional

Optionaler User-Agent-String für den Browser.

Attribute

datapandas.DataFrame

Zusammengeführte Kursdaten aller Wertpapiere.

_urlsdict

Enthält alle Kurs-URLs aus der Konfiguration.

_loggerlogging.Logger

Instanzspezifischer Logger.

login() None

Meldet sich auf ariva.de an, falls Zugangsdaten vorhanden sind.

Öffnet die Login-Seite, füllt Benutzername und Passwort aus, sendet das Formular ab und schließt anschließend eventuelle Werbe-Overlays (über handle_ad_banner).

download_data() None

Lädt Kursdaten (CSV) von allen in der Konfiguration definierten URLs.

Für jede URL:
  • öffnet die Seite,

  • setzt optional die Währung auf EUR,

  • trägt Start- und Enddatum ein,

  • wählt Trenner ‚;‘,

  • startet den Download und wartet auf Abschluss.

process_data(*args, **kwargs) None

Verarbeitet und bereinigt die heruntergeladenen Kursdaten.

preprocess_data(key: str, df: pandas.DataFrame) pandas.DataFrame

Überschreibt die Basismethode, um benutzerdefinierte Vorverarbeitung zu ermöglichen.

Parameter:
  • key (str) – Schlüssel der Datenquelle (Dateiname).

  • df (pandas.DataFrame) – Eingabedaten.

Rückgabe:

Vorverarbeitete Daten.

Rückgabetyp:

pandas.DataFrame

_handle_ad_banner() bool

Schließt das Werbe-iFrame auf ariva.de, falls es sichtbar ist.

Durchsucht alle iFrames nach dem ‚Akzeptieren und weiter‘-Button und klickt ihn. Schaltet dabei automatisch den Frame-Kontext um.

Rückgabe:

True, wenn ein Banner gefunden und geschlossen wurde, sonst False.

Rückgabetyp:

bool

read_transactions.webcrawler.ariva.output_path = '../../../out'