dealfront_enrichment.py aktualisiert

This commit is contained in:
2025-07-04 04:00:49 +00:00
parent d86ca96e72
commit 0cf06ff0cb

View File

@@ -86,7 +86,8 @@ class DealfrontScraper:
def login_and_navigate_to_target(self):
"""
Führt Login durch und navigiert direkt zur Target-URL.
Führt den Login durch und navigiert zur Target-Seite via Klick auf den "Quick Link".
Dieser Ansatz ist maximal robust.
"""
if not self.driver: return False
username, password = self._load_credentials()
@@ -102,17 +103,22 @@ class DealfrontScraper:
self.driver.find_element(By.XPATH, "//button[normalize-space()='Log in']").click()
logger.info("Login-Befehl gesendet.")
# SCHRITT 2: DIREKTE NAVIGATION (robuster als auf Dashboard zu warten)
# Eine kurze, feste Pause nach dem Klick, bevor wir die URL wechseln.
time.sleep(3)
logger.info(f"Navigiere direkt zur Target-URL: {Config.DEALFRONT_TARGET_URL}")
self.driver.get(Config.DEALFRONT_TARGET_URL)
# SCHRITT 2: NAVIGATION VIA QUICK-LINK-KACHEL
logger.info("Warte auf Dashboard und 'Prospects finden'-Link in den Quick Links.")
# Dieser XPath zielt auf den Link in der "Quick links"-Kachel
prospects_link_selector = (By.XPATH, "//a[contains(@href, '/t/prospector/companies')]")
prospects_link = self.wait.until(EC.element_to_be_clickable(prospects_link_selector))
logger.info("'Prospects finden'-Link gefunden. Klicke darauf...")
prospects_link.click()
# SCHRITT 3: NAVIGATION VERIFIZIEREN
verification_selector = (By.XPATH, "//button[normalize-space()='+ Neue Suche']")
self.wait.until(EC.visibility_of_element_located(verification_selector))
logger.info("'Target'-Seite erfolgreich geladen.")
verification_target_selector = (By.XPATH, "//button[normalize-space()='+ Neue Suche']")
self.wait.until(EC.visibility_of_element_located(verification_target_selector))
logger.info("'Target'-Seite erfolgreich und vollständig geladen.")
return True
except Exception as e:
logger.critical(f"Login- oder Navigationsprozess fehlgeschlagen: {type(e).__name__}", exc_info=True)
self._save_debug_artifacts()