import random from driver.chrome_proxy import ChromeProxy from urllib.parse import urlparse import undetected_chromedriver as uc import logging # В patcher.py библиотеки undetected_chromedriver # import secrets # prefix = 'undetected' ----> prefix = secrets.token_hex(8) # Использование случайного токена в качестве префикса гарантирует, # что каждый процесс будет иметь свою уникальную директорию, # даже если несколько процессов работают одновременн class DriverCreator: def __init__(self, proxy_list): self.proxy_list = proxy_list def _switch_proxy(self): proxy = random.choice(self.proxy_list) parsed_proxy = urlparse(proxy) return ChromeProxy( parsed_proxy.hostname, parsed_proxy.port, parsed_proxy.username, parsed_proxy.password ).create_extension() def get_driver(self): # extension_path = self._switch_proxy() options = uc.ChromeOptions() # options.add_argument(f"--load-extension={extension_path}") # временно # options.add_argument("--headless=new") options.add_argument("--disable-gpu") options.add_argument("--disable-dev-shm-usage") options.add_argument("--no-sandbox") # options.add_argument("--disable-webgl") # options.add_argument("--disable-software-rasterizer") # options.add_argument("--disable-extensions") # prefs = {"profile.managed_default_content_settings.javascript": 2} # options.experimental_options["prefs"] = prefs driver = uc.Chrome( options=options, version_main=135, # user_multi_procs=True ) # driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", { # "source": "Object.defineProperty(navigator, 'javaEnabled', {get: () => false});" # }) # driver.execute_cdp_cmd("Emulation.setScriptExecutionDisabled", {"value": True}) return driver