bugfix
This commit is contained in:
@@ -20,6 +20,7 @@ setup_logging(log_level=logging.DEBUG if Config.DEBUG else logging.INFO)
|
|||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
# ... (Kontext: Zeile davor)
|
||||||
class DealfrontScraper:
|
class DealfrontScraper:
|
||||||
"""
|
"""
|
||||||
Kapselt alle Interaktionen mit der Dealfront-Plattform mittels Selenium.
|
Kapselt alle Interaktionen mit der Dealfront-Plattform mittels Selenium.
|
||||||
@@ -28,6 +29,7 @@ class DealfrontScraper:
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""
|
"""
|
||||||
Initialisiert den WebDriver und den WebDriverWait.
|
Initialisiert den WebDriver und den WebDriverWait.
|
||||||
|
Verwendet den system-installierten chromedriver im Docker-Container.
|
||||||
"""
|
"""
|
||||||
logger.info("Initialisiere den DealfrontScraper und den Chrome WebDriver.")
|
logger.info("Initialisiere den DealfrontScraper und den Chrome WebDriver.")
|
||||||
chrome_options = ChromeOptions()
|
chrome_options = ChromeOptions()
|
||||||
@@ -38,21 +40,19 @@ class DealfrontScraper:
|
|||||||
chrome_options.add_argument("--disable-dev-shm-usage")
|
chrome_options.add_argument("--disable-dev-shm-usage")
|
||||||
chrome_options.add_argument("--window-size=1920,1080")
|
chrome_options.add_argument("--window-size=1920,1080")
|
||||||
|
|
||||||
chrome_options.add_argument("--disable-blink-features=AutomationControlled")
|
# Anti-Detection-Maßnahmen
|
||||||
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
|
|
||||||
chrome_options.add_experimental_option('useAutomationExtension', False)
|
|
||||||
chrome_options.add_argument("--disable-blink-features=AutomationControlled")
|
chrome_options.add_argument("--disable-blink-features=AutomationControlled")
|
||||||
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
|
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
|
||||||
chrome_options.add_experimental_option('useAutomationExtension', False)
|
chrome_options.add_experimental_option('useAutomationExtension', False)
|
||||||
|
|
||||||
# Stellt sicher, dass der korrekte ChromeDriver automatisch heruntergeladen und verwendet wird
|
# Da der chromedriver im Dockerfile systemweit installiert wird,
|
||||||
|
# ist der webdriver-manager nicht mehr nötig. Selenium findet den Treiber von selbst.
|
||||||
try:
|
try:
|
||||||
service = ChromeService(ChromeDriverManager().install())
|
self.driver = webdriver.Chrome(options=chrome_options)
|
||||||
self.driver = webdriver.Chrome(service=service, options=chrome_options)
|
|
||||||
# Wichtig, um als "echter" Browser zu erscheinen
|
# Wichtig, um als "echter" Browser zu erscheinen
|
||||||
self.driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
|
self.driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.critical(f"WebDriver konnte nicht initialisiert werden. Stellen Sie sicher, dass Chrome installiert ist. Fehler: {e}")
|
logger.critical(f"WebDriver konnte nicht initialisiert werden. Fehler: {e}", exc_info=True)
|
||||||
self.driver = None
|
self.driver = None
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user