Ergänzung um hat gekauft
Erweiterung, dass Käufer ausgeschlossen werden.
This commit is contained in:
@@ -18,7 +18,7 @@ OUTPUT_DIR = 'output'
|
|||||||
OUTPUT_FILE = os.path.join(OUTPUT_DIR, 'supermailer_fertige_liste.csv')
|
OUTPUT_FILE = os.path.join(OUTPUT_DIR, 'supermailer_fertige_liste.csv')
|
||||||
LOGIN_URL = 'https://app.fotograf.de/login/login'
|
LOGIN_URL = 'https://app.fotograf.de/login/login'
|
||||||
|
|
||||||
# --- Selektoren ---
|
# --- Selektoren (FINALE, VOLLSTÄNDIGE VERSION) ---
|
||||||
SELECTORS = {
|
SELECTORS = {
|
||||||
"cookie_accept_button": "#CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll",
|
"cookie_accept_button": "#CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll",
|
||||||
"login_user": "#login-email",
|
"login_user": "#login-email",
|
||||||
@@ -32,6 +32,8 @@ SELECTORS = {
|
|||||||
"person_vorname": ".//span[text()='Vorname']/following-sibling::strong",
|
"person_vorname": ".//span[text()='Vorname']/following-sibling::strong",
|
||||||
"person_logins": ".//span[text()='Logins']/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')]",
|
"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')]",
|
"potential_buyer_link": "//a[contains(@href, '/config_customers/view_customer')]",
|
||||||
"quick_login_url": "//a[@id='quick-login-url']",
|
"quick_login_url": "//a[@id='quick-login-url']",
|
||||||
"buyer_email": "//span[contains(., '@')]"
|
"buyer_email": "//span[contains(., '@')]"
|
||||||
@@ -167,7 +169,22 @@ def process_full_job(driver, job_url):
|
|||||||
|
|
||||||
if int(login_count_text) <= 1:
|
if int(login_count_text) <= 1:
|
||||||
vorname = person_row.find_element(By.XPATH, SELECTORS["person_vorname"]).text
|
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')
|
access_code_page_url = person_row.find_element(By.XPATH, SELECTORS["person_access_code_link"]).get_attribute('href')
|
||||||
driver.get(access_code_page_url)
|
driver.get(access_code_page_url)
|
||||||
|
|||||||
Reference in New Issue
Block a user