You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python+Selenium爬取报错:OSError: [WinError 193] 无效Win32应用

解决OSError: [WinError 193] %1 不是有效的Win32应用程序错误

问题背景

在Python爬虫程序中启动Chrome时遇到以下错误:
OSError: [WinError 193] %1 不是有效的Win32应用程序

已安装64位Chrome浏览器,版本为127.0.6533.89。

启动Chrome的代码

def start_chrome(ruta_descarga):
    """Inicia Chrome con los parametros indicados y devuelve el Driver"""
    #Intalamos la version de ChromeDriver correspondiente
    ruta = ChromeDriverManager().install()
    #OPCIONES DE CHROME:
    options = Options() #instanciamos las opciones de chrome
    user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36"
    options.add_argument(f"user-agent={user_agent}") # define un user agent perzonalizado
    #options.add_argument("--windows-size=1000,1000") # para configurar un alto y ancho de la ventana
    options.add_argument("--start-maximized") #para maximar la ventana de Chrome (solo funciona si no se indica windows size)
    options.add_argument("--disable-web-security") #desahabilita la politica del mismo origen o Same Origine Policy
    options.add_argument("--disable-    ") # para que no cargue las extensiones de Chrome
    options.add_argument("--disable-notifications") # para bloquear notificaciones de Chrome 
    options.add_argument("--ignore-certificate-errors") # Para ignorar el aviso "Su conexion no es segura"
    options.add_argument("--no-sandbox") # deshabilita el modo sanbox, No se sabe para que sirve pero en tutoriales lo utilizan
    options.add_argument("--log-level=3") #para que Chromedriver no muestre nada en la terminal 
    options.add_argument("--allow-running-insecure-content") # desactiva el aviso de "contenido no seguro"
    options.add_argument("--no-default-browser-check") # Evita el aviso de Chrome no es navegador por defecto
    options.add_argument("--no-first-run") # evita le ejecucion de ciertas tareas que se realizan la primera vez que se ejecuta Chrome
    options.add_argument("--no-proxy-server") # para no usar el proxy, sino conexiones directas
    options.add_argument("--disable-blink-features=AutomationControlled") # evita que selenium sea detectados por sistemas anti bots
    options.add_argument("--user-data-dir=C:/Users/Probook/AppData/Local/Google/Chrome/User Data/Profile 1")
    #PARAMETROS A OMIITR EN EL INICIO DE CHROMEDRIVE
    exp_opt = [
        'enable-automation', #para que no muestre la notificacion de "Un software automatizado de pruebas está controlado Chrome"
        'ignore-certificate-errors', # para ignorar errores de cerficados (a veces estan caducados)
        'enable-logging' # para que no se muestre en la terminal "DevTools listening on..."
        ]
    options.add_experimental_option("excludeSwitches", exp_opt)

    #PARAMETROS QUE DEFINEN LAS PREFERENCIAS EN CHROMEDRIVER
    prefs = {
        "profile.default_content_setting_values.notifications" : 2, # notificaciones: 0=preguntar | 1:permitir | 2:no permitir
        "intl.accept_languages"                                : ["es-ES","es"], # para definir el idioma del navegador
        "credentials_enable_service"                           : False, # para evitar que Chrome pregunte si queremos guardar la contresaña al loguearnos
        "download.default_directory"                           : f"{ruta_descarga}"
        }
    options.add_experimental_option("prefs", prefs)
    #instancia el servicio de chromedriver
    s = Service(ruta) 
    #instanciamos webdriver de selenium con Chrome
    driver = webdriver.Chrome(service=s, options=options) #se añade el argmento OPTIONS
    #devolvemos el driver
    return driver

报错信息

Traceback (most recent call last):
  File "G:\Mi unidad\Declaraciones\Programas\descarga_exogena.py", line 596, in <module>
    desca_archivo_dian(ruta_proyecto,rango,year_consulta)
  File "G:\Mi unidad\Declaraciones\Programas\descarga_exogena.py", line 455, in desca_archivo_dian
    driver = start_chrome(ruta_folder_name)
  File "G:\Mi unidad\Declaraciones\Programas\descarga_exogena.py", line 429, in start_chrome
    driver = webdriver.Chrome(service=s, options=options) #se añade el argmento OPTIONS
  File "C:\Users\Probook\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 45, in __init__
    super().__init__(
  File "C:\Users\Probook\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\chromium\webdriver.py", line 55, in __init__
    self.service.start()
  File "C:\Users\Probook\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\common\service.py", line 98, in start   
    self._start_process(self._path)
  File "C:\Users\Probook\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\common\service.py", line 208, in _start_process
    self.process = subprocess.Popen(
  File "C:\Users\Probook\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 951, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\Users\Probook\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 1420, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
OSError: [WinError 193] %1 no es una aplicación Win32 válida

已尝试的操作

删除了C:\Users\myuser.wdm\drivers\chromedriver\win64路径下的chromedriver文件,但问题仍未解决。

解决方案建议

  • 修复无效启动参数:代码中存在一行无效参数options.add_argument("--disable- "),这会导致Chrome启动异常,建议修改为--disable-extensions或直接删除该行。
  • 确认ChromeDriver版本匹配:尽管使用了ChromeDriverManager,仍可能出现版本不匹配或下载错误。手动确认Chrome版本对应的ChromeDriver版本,下载64位版本后替换到.wdm目录中。
  • 检查Python位数:确保安装的Python是64位版本,32位Python无法正确调用64位的ChromeDriver,会触发该错误。
  • 清理完整缓存:除了删除win64目录下的文件,清空整个C:\Users\myuser\.wdm目录,让ChromeDriverManager重新下载驱动。
  • 排除用户数据目录问题:临时注释掉--user-data-dir参数,测试是否能正常启动Chrome,排查配置文件权限或损坏的问题。

内容的提问来源于stack exchange,提问作者Ruben Guevara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 09:32:13