dealfront_enrichment.py aktualisiert
This commit is contained in:
@@ -232,45 +232,54 @@ class DealfrontScraper:
|
||||
self.driver.quit()
|
||||
|
||||
if __name__ == "__main__":
|
||||
logger.info("Starte Dealfront Automatisierung - Phase 2a: Suche und Extraktion")
|
||||
logger.info("Starte Dealfront Automatisierung - MAXIMALER DEBUG-MODUS")
|
||||
|
||||
scraper = None
|
||||
try:
|
||||
scraper = DealfrontScraper()
|
||||
if scraper.driver:
|
||||
# Schritt 1: Login
|
||||
if not scraper.login():
|
||||
raise Exception("Login fehlgeschlagen.")
|
||||
|
||||
logger.info("Login erfolgreich. Pausiere kurz vor der Navigation.")
|
||||
time.sleep(3)
|
||||
if not scraper.driver:
|
||||
raise Exception("WebDriver konnte nicht initialisiert werden.")
|
||||
|
||||
# Schritt 2: Navigation
|
||||
if not scraper.navigate_to_target():
|
||||
raise Exception("Navigation zur Target-Seite fehlgeschlagen.")
|
||||
# --- SCHRITT 1: LOGIN ---
|
||||
if not scraper.login():
|
||||
raise Exception("Login fehlgeschlagen.")
|
||||
logger.info(f"Login erfolgreich abgeschlossen. Aktuelle URL: {scraper.driver.current_url}")
|
||||
logger.info("Warte 5 Sekunden, um den Dashboard-Zustand zu stabilisieren...")
|
||||
time.sleep(5)
|
||||
|
||||
# Schritt 3: Suche laden
|
||||
if not scraper.load_search(Config.TARGET_SEARCH_NAME):
|
||||
raise Exception(f"Laden der Suche '{Config.TARGET_SEARCH_NAME}' fehlgeschlagen.")
|
||||
|
||||
# Schritt 4: Ergebnisse extrahieren
|
||||
companies = scraper.extract_current_page_results()
|
||||
# --- SCHRITT 2: NAVIGATION ZUR TARGET URL ---
|
||||
logger.info(f"Versuche jetzt, zur Target-URL zu navigieren: {Config.DEALFRONT_TARGET_URL}")
|
||||
scraper.driver.get(Config.DEALFRONT_TARGET_URL)
|
||||
logger.info("Navigationsbefehl zur Target-URL wurde gesendet.")
|
||||
logger.info("Warte 5 Sekunden, damit die Navigation wirken kann...")
|
||||
time.sleep(5)
|
||||
|
||||
logger.info(f"URL nach Navigationsversuch: {scraper.driver.current_url}")
|
||||
logger.info("Speichere Debug-Artefakte NACH dem Navigationsversuch...")
|
||||
scraper._save_debug_artifacts() # Wir erzwingen hier einen Dump, um den Zustand zu sehen
|
||||
|
||||
if companies:
|
||||
logger.info("===== Extrahierte Firmen (erste Seite) =====")
|
||||
for company in companies:
|
||||
logger.info(f" - Name: {company['name']}, Webseite: {company['website']}")
|
||||
logger.info("===========================================")
|
||||
else:
|
||||
logger.warning("Keine Firmen auf der ersten Seite extrahiert.")
|
||||
# --- SCHRITT 3: VERIFIZIERUNG VERSUCHEN ---
|
||||
logger.info("Versuche jetzt, die Target-Seite zu verifizieren...")
|
||||
|
||||
# Warten, bis die URL sich tatsächlich ändert.
|
||||
url_part_to_wait_for = "/t/prospector/"
|
||||
logger.info(f"Warte explizit, bis die URL '{url_part_to_wait_for}' enthält...")
|
||||
scraper.wait.until(EC.url_contains(url_part_to_wait_for))
|
||||
logger.info(f"URL-Wechsel bestätigt! Aktuelle URL: {scraper.driver.current_url}")
|
||||
|
||||
logger.info("Phase 2a Test erfolgreich abgeschlossen. Warte vor dem Schließen...")
|
||||
time.sleep(10)
|
||||
# Warten auf sichtbares Element auf der neuen Seite.
|
||||
verification_selector = (By.XPATH, "//button[normalize-space()='+ Neue Suche']")
|
||||
logger.info(f"Warte auf Sichtbarkeit des Verifizierungs-Elements: {verification_selector}")
|
||||
scraper.wait.until(EC.visibility_of_element_located(verification_selector))
|
||||
logger.info("Verifizierung der Target-Seite ERFOLGREICH!")
|
||||
|
||||
except Exception as e:
|
||||
logger.critical(f"Ein kritischer Fehler ist im Hauptprozess aufgetreten: {e}", exc_info=False)
|
||||
logger.critical(f"Ein kritischer Fehler ist im Hauptprozess aufgetreten: {type(e).__name__} - {e}", exc_info=True)
|
||||
# Der Screenshot wird schon in der Methode oder im try-Block gespeichert.
|
||||
finally:
|
||||
if scraper:
|
||||
logger.info("Warte 10 Sekunden vor dem Schließen des Browsers...")
|
||||
time.sleep(10)
|
||||
scraper.close()
|
||||
|
||||
logger.info("Dealfront Automatisierung beendet.")
|
||||
logger.info("Dealfront Debugging-Lauf beendet.")
|
||||
Reference in New Issue
Block a user