dealfront_enrichment.py aktualisiert

This commit is contained in:
2025-07-04 05:07:07 +00:00
parent 7f5eb91df1
commit e4e2e0f213

View File

@@ -224,24 +224,24 @@ class DealfrontScraper:
def extract_current_page_results(self): def extract_current_page_results(self):
""" """
Extrahiert die Firmennamen und Webseiten von der aktuellen Ergebnisseite Extrahiert die Firmennamen und Webseiten von der aktuellen Ergebnisseite
mit einem finalen, robusten XPath-Selektor. mit einem finalen, robusten XPath-Selektor für die Datenzeilen.
""" """
try: try:
logger.info("Extrahiere Ergebnisse von der aktuellen Seite...") logger.info("Extrahiere Ergebnisse von der aktuellen Seite...")
results = [] results = []
# Warten, bis die Tabelle (bzw. ihr Body) da ist # Warten, bis die Tabelle (bzw. ihr Body) da ist
self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "table#t-result-table tbody"))) table_body_selector = (By.CSS_SELECTOR, "table#t-result-table tbody")
time.sleep(3) # Letzte Pause, um das Rendern abzuwarten self.wait.until(EC.presence_of_element_located(table_body_selector))
time.sleep(3) # Letzte Pause, um das JS-Rendering abzuwarten
# Dieser XPath sucht nach allen `tr`-Elementen, die eine Zelle (td) enthalten, # Finaler, robuster Selektor für die Datenzeilen:
# welche wiederum ein Element mit einem 'data-userpilot-id' Attribut hat, das mit 'company-name-cell' beginnt. # Wir suchen alle `tr`-Elemente innerhalb des `tbody`, die eine `id` haben.
# Das ist ein sehr starkes Merkmal für eine Datenzeile. rows_selector = (By.CSS_SELECTOR, "table#t-result-table tbody tr[id]")
rows_selector = (By.XPATH, "//table[@id='t-result-table']/tbody/tr[.//div[@data-userpilot-id and starts-with(@data-userpilot-id, 'company-name-cell')]]")
rows = self.driver.find_elements(*rows_selector) rows = self.driver.find_elements(*rows_selector)
if not rows: if not rows:
logger.warning("Keine Ergebniszeilen gefunden. HTML-Struktur hat sich möglicherweise geändert.") logger.warning("Keine Ergebniszeilen (tr[id]) auf der Seite gefunden. HTML-Struktur hat sich möglicherweise geändert.")
self._save_debug_artifacts() self._save_debug_artifacts()
return [] return []