diff --git a/scrape_fotograf.py b/scrape_fotograf.py index d8358d89..9e60a0ad 100644 --- a/scrape_fotograf.py +++ b/scrape_fotograf.py @@ -18,7 +18,7 @@ OUTPUT_DIR = 'output' OUTPUT_FILE = os.path.join(OUTPUT_DIR, 'supermailer_fertige_liste.csv') LOGIN_URL = 'https://app.fotograf.de/login/login' -# --- Selektoren --- +# --- Selektoren (FINALE, VOLLSTÄNDIGE VERSION) --- SELECTORS = { "cookie_accept_button": "#CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll", "login_user": "#login-email", @@ -32,6 +32,8 @@ SELECTORS = { "person_vorname": ".//span[text()='Vorname']/following-sibling::strong", "person_logins": ".//span[text()='Logins']/following-sibling::strong", "person_access_code_link": ".//a[contains(@data-qa-id, 'guest-access-banner-access-code')]", + # NEU: Selector zur Überprüfung, ob ein Kauf getätigt wurde + "purchase_icon": ".//img[@alt='Bestellungen mit diesem Foto']", "potential_buyer_link": "//a[contains(@href, '/config_customers/view_customer')]", "quick_login_url": "//a[@id='quick-login-url']", "buyer_email": "//span[contains(., '@')]" @@ -167,7 +169,22 @@ def process_full_job(driver, job_url): if int(login_count_text) <= 1: vorname = person_row.find_element(By.XPATH, SELECTORS["person_vorname"]).text - print(f" --> ERFOLG: '{vorname}' mit {login_count_text} Login(s) gefunden!") + + # --- NEUE KAUF-PRÜFUNG --- + try: + # Finde den Foto-Container, der dem Info-Block folgt + photo_container = person_row.find_element(By.XPATH, "./following-sibling::div[1]") + # Prüfe, ob darin ein Warenkorb-Icon existiert + purchase_icons = photo_container.find_elements(By.XPATH, SELECTORS["purchase_icon"]) + if len(purchase_icons) > 0: + print(f" --> INFO: '{vorname}' hat bereits gekauft. Überspringe.") + continue # Springe zur nächsten Person + except NoSuchElementException: + # Kein Foto-Container gefunden, also auch kein Kauf + pass + # --- ENDE KAUF-PRÜFUNG --- + + print(f" --> ERFOLG: '{vorname}' mit {login_count_text} Login(s) gefunden (und kein Kauf).") access_code_page_url = person_row.find_element(By.XPATH, SELECTORS["person_access_code_link"]).get_attribute('href') driver.get(access_code_page_url)