read_transactions.webcrawler.paypal¶
- author:
Tim Häberlein
- version:
1.0
- date:
03.11.2025
- organisation:
TU Dresden, FZM
Paypal Crawler¶
Crawler für Paypal.com – lädt Transaktionen im csv Format herunter.
- Verwendung:
from read_transactions.webcrawler.paypal import PaypalCrawler
- with PaypalCrawler(logging_level=“DEBUG“) as crawler:
crawler.login() crawler.download_data() crawler.process_data() crawler.save_data()
Attributes¶
Classes¶
Repräsentiert einen Berichtseintrag auf der Archiv Seite von Paypal. |
|
Crawler für Paypal. |
Module Contents¶
- class read_transactions.webcrawler.paypal.Report¶
Repräsentiert einen Berichtseintrag auf der Archiv Seite von Paypal.
- row¶
Die Tabellenzeile des Berichts.
- Type:
WebElement
- download_btn¶
Der Download-Button für den Bericht.
- Type:
WebElement
- start_date¶
Startdatum des Berichts.
- Type:
Optional[pd.Timestamp]
- end_date¶
Enddatum des Berichts.
- Type:
Optional[pd.Timestamp]
- gen_date¶
Erstellungsdatum des Berichts.
- Type:
Optional[pd.Timestamp]
- raw_date¶
Rohtext des Datumsbereichs.
- Type:
str
- raw_gen_date¶
Rohtext des Erstellungsdatums.
- Type:
str
- row: selenium.webdriver.remote.webelement.WebElement¶
- download_btn: selenium.webdriver.remote.webelement.WebElement¶
- start_date: pandas.Timestamp | None¶
- end_date: pandas.Timestamp | None¶
- gen_date: pandas.Timestamp | None¶
- raw_date: str¶
- raw_gen_date: str¶
- class read_transactions.webcrawler.paypal.PaypalCrawler(*args, **kwargs)¶
Bases:
read_transactions.webcrawler.WebCrawlerCrawler für Paypal.
Der Crawler automatisiert den Login auf paypal.com, lädt alle Transaktionen im gewählten Datumsbereich herunter und konvertiert sie in ein einheitliches CSV-Format.
- Ablauf:
Login mit Benutzername + 4-stelliger PIN
Öffnen der Transaktionsseite
…
- Erfordert:
gültige Zugangsdaten in config.yaml
hinterlegte URLs für login und transactions
funktionierenden Selenium-WebDriver (Edge / Chrome / Firefox)
- Beispiel:
`bash readtx run paypal --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,chromeoderfirefox). 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:
account_balance (str): Aktueller Kontostand nach erfolgreichem Login. data (pd.DataFrame): Aufbereitete Transaktionsdaten.
- _verified = False¶
- login()¶
Führt den Login auf Paypal durch.
- download_data()¶
Lädt die Transaktionsdaten im CSV-Format herunter.
- process_data(*args, **kwargs)¶
Verarbeitet die heruntergeladenen CSV-Dateien und konsolidiert sie in ein DataFrame.
- preprocess_data(key: str, df: pandas.DataFrame) pandas.DataFrame¶
Überschreibt die preprocess_data Methode der Basis-Klasse für Paypal-spezifische Anpassungen. - Filtert und benennt Spalten um - Bereinigt bestimmte Transaktionstypen - Integriert Hinweise in den Verwendungszweck
- _login_enter_username(timeout: int = 180) bool¶
Gibt den Benutzernamen auf der Login-Seite ein und drückt „Weiter“.
- _login_enter_password()¶
Gibt das Passwort auf der Login-Seite ein und drückt „Anmelden“.
- _verify_identity(timeout: int = 180) bool¶
Führt die 2-Faktor-Authentifizierung durch (z. B. PIN-Eingabe).
- _check_available_reports() list[Report]¶
prüft verfügbare Berichte auf der Transaktionsseite
- Rückgabe:
Liste der verfügbaren Berichte mit Metadaten.
- Rückgabetyp:
list[Report]
- _generate_new_report(start_date: pandas.Timestamp | None = None, end_date: pandas.Timestamp | None = None, timeout: int = 180) bool¶
Erstellt einen neuen Bericht für den gewünschten datumsbereich
- Parameter:
start_date (pd.Timestamp | None) – Startdatum (inklusive). Wenn None, wird der Standardwert verwendet.
end_date (pd.Timestamp | None) – Enddatum (inklusive). Wenn None, wird der Standardwert verwendet.
timeout (int) – Maximale Wartezeit in Sekunden für den Berichtserstellungsprozess.
- split_dates() list[tuple[pandas.Timestamp, pandas.Timestamp]]¶
Zerlegt den aktuellen Datumsbereich des Crawlers in Jahressegmente. Sofern der Bereich über mehrere Jahre geht, werden die vollen Jahre als eigene Segmente zurückgegeben. Teiljahre am Anfang und Ende werden ebenfalls berücksichtigt. Sollte das erste Jahr das aktuelle Jahr sein, wird das Enddatum auf das heutige Datum begrenzt.
- Rückgabe:
Liste von Tupeln mit (start_date, end_date) für jedes Segment.
- Rückgabetyp:
list[tuple[pd.Timestamp, pd.Timestamp]]
- read_transactions.webcrawler.paypal.config = None¶