diff --git a/dealfront_enrichment.py b/dealfront_enrichment.py index e0694c3d..e9f4f9dc 100644 --- a/dealfront_enrichment.py +++ b/dealfront_enrichment.py @@ -38,13 +38,16 @@ OUTPUT_DIR = "/app/output" class DealfrontScraper: def __init__(self): - logger.info("Initialisiere DealfrontScraper und Chrome WebDriver.") + """ + Initialisiert den WebDriver und den WebDriverWait. + Verwendet explizit den im Dockerfile installierten chromedriver. + """ + logger.info("Initialisiere den DealfrontScraper und den Chrome WebDriver.") chrome_options = ChromeOptions() - # NEU: Lade-Optimierungen + # Lade-Optimierungen und Headless-Argumente prefs = {"profile.managed_default_content_settings.images": 2} chrome_options.add_experimental_option("prefs", prefs) - chrome_options.add_argument("--headless") chrome_options.add_argument("--no-sandbox") chrome_options.add_argument("--disable-dev-shm-usage") @@ -53,8 +56,14 @@ class DealfrontScraper: chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"]) chrome_options.add_experimental_option('useAutomationExtension', False) + # --- ENTSCHEIDENDE ÄNDERUNG --- + # Wir geben den Pfad zum funktionierenden, system-installierten Treiber explizit an. + # Dies umgeht den fehlerhaften webdriver-manager vollständig. + from selenium.webdriver.chrome.service import Service + service = Service(executable_path='/usr/bin/chromedriver') + try: - self.driver = webdriver.Chrome(options=chrome_options) + self.driver = webdriver.Chrome(service=service, options=chrome_options) self.driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})") except Exception as e: logger.critical(f"WebDriver konnte nicht initialisiert werden. Fehler: {e}", exc_info=True) @@ -62,7 +71,7 @@ class DealfrontScraper: raise self.wait = WebDriverWait(self.driver, 30) - logger.info("WebDriver erfolgreich initialisiert (Bild-Laden deaktiviert).") + logger.info("WebDriver erfolgreich initialisiert.")``` def _load_credentials(self): # (Diese Methode bleibt unverändert)