import undetected_chromedriver as uc def driver_scrapping(carpeta_descargas, carpeta_perfil_chrome, ejecutable_chrome, headless=False): """ Description: Initializes a Chrome session with specific options and settings based on provided parameters. Configures download folder, user profile directory, and Chrome executable. Sets the browser window size and returns the configured driver object for external use. Parameters: carpeta_descargas (str): Path to the download directory. carpeta_perfil_chrome (str): Path to the Chrome user profile directory. ejecutable_chrome (str): Path to the Chrome executable. Returns: driver (WebDriver): Configured WebDriver object ready for automation tasks. Usage: driver = driver_scrapping(download_folder, profile_folder, executable_path) Created_at: 2024-05-04 Updated_at: 2024-05-04 """ try: # Configuration settings for the Chrome browser options = uc.ChromeOptions() options.headless = headless # Set to True for headless operation options.add_argument("--disable-blink-features=AutomationControlled") options.add_argument("--password-store=basic") # Add experimental options and preferences for browser configuration options.add_experimental_option( "prefs", { "download.default_directory": carpeta_descargas, "download.prompt_for_download": False, "download.directory_upgrade": True, "safebrowsing.enabled": True, "credentials_enable_service": False, "profile.password_manager_enabled": False, "plugins.always_open_pdf_externally": True, } ) # Initialize the Chrome driver with specified options driver = uc.Chrome(options=options, user_data_dir=carpeta_perfil_chrome, browser_executable_path=ejecutable_chrome) # Set browser window size driver.set_window_size(1200, 800) print("Browser configured and ready for use.") return driver except Exception as e: print(f"Failed to load driver. {e}")