dealfront_enrichment.py aktualisiert

This commit is contained in:
2025-07-13 15:23:19 +00:00
parent 599be46287
commit 24e480565f

View File

@@ -200,29 +200,6 @@ class DealfrontScraper:
# Warte auf neue Seite: Änderung der ID ODER Änderung des Texts der ersten Zeile # Warte auf neue Seite: Änderung der ID ODER Änderung des Texts der ersten Zeile
def page_changed(driver): def page_changed(driver):
try: try:
row = driver.find_element(By.CSS_SELECTOR, "table#t-result-table tbody tr[id]")
row_id = row.get_attribute("id")
row_text = row.text.strip()
logger.debug(f"Nach Pagination: Erste Zeilen-ID: {row_id}, Text: '{row_text}'")
if first_row_id and row_id != first_row_id:
return True
if first_row_text and row_text != first_row_text:
return True
return False
except Exception as e:
logger.warning(f"Fehler beim Vergleichen der ersten Zeile nach Pagination: {e}")
return False
self.wait.until(page_changed)
logger.info("Seitenwechsel erfolgreich verifiziert (erste Zeile hat neue ID oder neuen Text).")
# NEU: Logge die aktuelle aktive Seite
try:
active_page = self.driver.find_element(By.CSS_SELECTOR, "a.eb-pagination-button.active").text.strip()
logger.info(f"Aktive Seite nach Pagination: {active_page}")
except Exception as e:
logger.warning(f"Konnte aktive Seite nach Pagination nicht ermitteln: {e}")
except Exception as e: except Exception as e:
logger.error(f"Fehler beim Klicken auf den Weiter-Button oder beim Warten auf neue Seite: {e}") logger.error(f"Fehler beim Klicken auf den Weiter-Button oder beim Warten auf neue Seite: {e}")
# Screenshot und HTML speichern # Screenshot und HTML speichern
@@ -237,12 +214,14 @@ class DealfrontScraper:
# Zusätzlich: Logge alle Zeilen nach dem Fehler (nur Text und HTML-Start) # Zusätzlich: Logge alle Zeilen nach dem Fehler (nur Text und HTML-Start)
try: try:
all_rows = self.driver.find_elements(By.CSS_SELECTOR, "table#t-result-table tbody tr") all_rows = self.driver.find_elements(By.CSS_SELECTOR, "table#t-result-table tbody tr")
except Exception as eee:
logger.error(f"Fehler beim Finden der Tabellenzeilen nach Fehler: {eee}")
all_rows = []
logger.info(f"Nach Pagination-Fehler: Es sind {len(all_rows)} Zeilen im DOM.") logger.info(f"Nach Pagination-Fehler: Es sind {len(all_rows)} Zeilen im DOM.")
for i, r in enumerate(all_rows): for i, r in enumerate(all_rows):
html_snippet = r.get_attribute('outerHTML')[:120].replace('\n', ' ') html_snippet = r.get_attribute('outerHTML')[:120].replace('\n', ' ')
logger.info(f"Zeile {i}: Text='{r.text.strip()}', HTML-Start={html_snippet}...") logger.info(f"Zeile {i}: Text='{r.text.strip()}', HTML-Start={html_snippet}...")
except Exception as eee:
logger.error(f"Fehler beim Loggen der Zeilen nach Fehler: {eee}")
break break
return all_companies return all_companies