dealfront_enrichment.py aktualisiert
This commit is contained in:
@@ -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 []
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user