read_transactions.webcrawler.amex¶
- author:
Tim Häberlein
- version:
2.0
- date:
22.10.2025
- organisation:
TU Dresden, FZM
AmexCrawler¶
Crawler für American Express – lädt Transaktionen (CSV) im gewählten Zeitraum herunter und führt sie in ein einheitliches Format über.
Der Crawler orientiert sich an der Architektur der ArivaCrawler- und AmazonVisaCrawler-Klassen. Er nutzt Selenium zur Browsersteuerung, greift auf Anmeldedaten aus der zentralen config.yaml zu und setzt auf die generische Basisklasse WebCrawler, die Standardfunktionen wie Logging, Fehlerbehandlung, Warte- und Retry-Mechanismen, Datendownload und Dateiverarbeitung bereitstellt.
Attributes¶
Classes¶
American Express TransaktionsCrawler |
Module Contents¶
- class read_transactions.webcrawler.amex.AmexCrawler(*args, **kwargs)¶
Bases:
read_transactions.webcrawler.WebCrawlerAmerican Express TransaktionsCrawler
Diese Klasse automatisiert den Login, Download und die Aufbereitung von Transaktionsdaten der American Express Webseite (https://www.americanexpress.com).
Sie erbt von der generischen Basisklasse WebCrawler, welche die Standardmechanismen für Selenium-gestützte Webautomatisierung kapselt.
- Hauptfunktionen:
- Login:
Führt den vollständigen Loginprozess aus (Cookies → Benutzername/Passwort → OTP-Verifikation). Erkennt Zwei-Faktor-Authentifizierungen automatisch und fordert ggf. einen Bestätigungscode an.
- Download:
Öffnet die Transaktionsübersicht, setzt den gewünschten Datumsbereich, lädt alle sichtbaren Datensätze (über „Mehr anzeigen“) und startet den CSV-Export.
- Processing:
Vereinheitlicht und bereinigt heruntergeladene CSV-Dateien: - Zusammenführen mehrerer Dateien zu einem DataFrame. - Konvertiert Datum „dd/mm/yyyy“ → „dd.mm.yyyy“. - Ersetzt Komma in Beträgen (z. B. „1,23“ → „1.23“). - Vereinheitlicht Spaltennamen zu Datum, Betrag, Beschreibung.
- OTP/2FA:
Bietet interaktive Eingabe des 4-stelligen Sicherheitscodes, mit Optionen zum erneuten Anfordern oder Wiederholen bei Falscheingabe.
- Erwartete Konfigurationseinträge in config.yaml:
-
- amex:
user: <AMEX Benutzername> password: <AMEX Passwort>
- urls:
- amex:
login: https://www.americanexpress.com/de-de/account/login transactions: https://global.americanexpress.com/activity/search transactions_recent: https://global.americanexpress.com/activity/recent
- Rückgabewerte und Attribute:
self.data: Enthält den verarbeiteten pandas.DataFrame nach process_data().
self._credentials: Enthält die aus der config geladenen Zugangsdaten.
self._urls: Beinhaltet alle relevanten Ziel-URLs.
- Abhängigkeiten:
Selenium (WebDriver, By, Keys)
pandas
yaml (über Konfigurationslade-Mechanismus)
logging (über logger.py)
- Beispiel:
```python from read_transactions.webcrawler.amex import AmexCrawler
- with AmexCrawler(logging_level=“DEBUG“) as crawler:
crawler.login() crawler.download_data() crawler.process_data() crawler.save_data()
- _verified: bool = False¶
- login() None¶
Führt den Login bei American Express aus (User + Passwort + ggf. OTP).
- download_data() None¶
Öffnet die Transaktionsseite, setzt den Datumsbereich und startet den CSV-Download.
- process_data(*arg, **kwargs) None¶
Führt die geladenen CSV-Dateien zusammen und harmonisiert die Spalten.
- _enter_username_password() None¶
- _handle_cookie_banner() None¶
- _wait_for_account_balance() None¶
- _fill_dates_and_search() None¶
Befüllt die AMEX-Datumsfelder (Start/End date) kompakt mit Tag, Monat, Jahr.
- _load_all_transactions() None¶
- _select_all_and_download() None¶
- _verify_identity() None¶
- read_transactions.webcrawler.amex.crawler¶