Google Colab中Selenium遇chromedriver意外退出(状态码1)问题求助
Google Colab中Selenium启动ChromeDriver报错(状态码1)的原因及解决方法
原因分析
- 版本不匹配:Colab系统环境会自动更新,
apt install chromium-chromedriver安装的Chromium与ChromeDriver版本可能随系统更新发生变化,二者版本不兼容会直接导致启动失败。 - 资源不足:Colab的虚拟机属于共享资源,当所在节点内存、CPU资源紧张时,ChromeDriver无法正常初始化进程,这也是问题时好时坏的核心诱因。
- 路径/权限问题:将chromedriver复制到/usr/bin后,可能存在权限不足,或者调用时未正确指向可执行文件的情况,导致进程启动后异常退出。
解决提示
锁定Chromium与ChromeDriver版本
先查询当前可用的兼容版本,再指定安装,避免版本自动更新带来的不兼容:# 查看可用的chromium-chromedriver版本 !apt-cache show chromium-chromedriver | grep Version # 安装指定版本(替换为查询到的兼容版本) !apt-get install -y chromium-chromedriver=114.0.5735.90-0ubuntu0.18.04.1 !cp /usr/lib/chromium-browser/chromedriver /usr/bin改用Selenium 4+的Service方式启动Driver
避免硬编码路径,使用官方推荐的Service类管理驱动,同时确保权限正确:from selenium.webdriver.chrome.service import Service # 初始化Service对象,指定chromedriver路径 service = Service('/usr/bin/chromedriver') driver = webdriver.Chrome(service=service, options=options)增加资源优化参数
在ChromeOptions中添加更多资源相关参数,减少资源占用:options.add_argument('--disable-gpu') options.add_argument('--disable-extensions') options.add_argument('--disable-images') # 无需加载图片时可开启 options.add_argument('--window-size=1920,1080') # 替代maximize_window,降低资源消耗添加重试机制
针对时好时坏的情况,在启动Driver时增加重试逻辑:max_retries = 3 driver = None for _ in range(max_retries): try: service = Service('/usr/bin/chromedriver') driver = webdriver.Chrome(service=service, options=options) break except WebDriverException: time.sleep(2) # 重试前等待2秒 if not driver: raise Exception("多次重试后仍无法启动ChromeDriver")重启Colab会话
若以上方法无效,尝试重启Colab的运行时会话,释放当前节点资源后重新执行代码。
内容的提问来源于stack exchange,提问作者SamuraiBlue
相关产品推荐
相关产品推荐

