dealfront_enrichment.py aktualisiert
This commit is contained in:
@@ -178,18 +178,29 @@ class DealfrontScraper:
|
||||
return False
|
||||
|
||||
def load_search(self, search_name):
|
||||
# (Diese Methode bleibt vorerst unverändert)
|
||||
"""Lädt eine vordefinierte Suche anhand ihres Namens."""
|
||||
try:
|
||||
logger.info(f"Suche und lade die vordefinierte Suche: '{search_name}'")
|
||||
search_link_selector = (By.XPATH, f"//div[contains(@class, 'truncate') and normalize-space()='{search_name}']")
|
||||
logger.info(f"Warte, bis die Liste der gespeicherten Suchen sichtbar ist...")
|
||||
# Wir warten auf den Container, der alle Such-Items enthält.
|
||||
# Ein guter Selektor ist das `ul`-Element mit der ID, die mit `eb-popup` beginnt.
|
||||
# Oder allgemeiner: Ein Element, das den Text einer bekannten Suche enthält.
|
||||
search_list_container_selector = (By.XPATH, f"//div[normalize-space()='{search_name}']")
|
||||
self.wait.until(EC.visibility_of_element_located(search_list_container_selector))
|
||||
logger.info(f"Liste gefunden. Klicke jetzt auf die vordefinierte Suche: '{search_name}'")
|
||||
|
||||
# Der XPath sucht nach einem Element (div, a, button), dessen Text exakt übereinstimmt.
|
||||
search_link_selector = (By.XPATH, f"//*[normalize-space()='{search_name}']")
|
||||
search_link = self.wait.until(EC.element_to_be_clickable(search_link_selector))
|
||||
search_link.click()
|
||||
|
||||
|
||||
# Verifizieren, dass die Ergebnisse geladen sind, indem wir auf die Ergebnistabelle warten.
|
||||
results_table_header_selector = (By.XPATH, "//th[normalize-space()='Firma']")
|
||||
self.wait.until(EC.visibility_of_element_located(results_table_header_selector))
|
||||
logger.info(f"Suche '{search_name}' erfolgreich geladen und Ergebnisse angezeigt.")
|
||||
time.sleep(3)
|
||||
|
||||
time.sleep(3) # Feste Wartezeit, damit alle Daten nachgeladen sind.
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
logger.critical(f"Laden der Suche '{search_name}' fehlgeschlagen: {type(e).__name__}", exc_info=True)
|
||||
self._save_debug_artifacts()
|
||||
|
||||
Reference in New Issue
Block a user