Google Colab中Selenium运行报错:chromedriver意外退出(状态码1)
解决Colab中Selenium驱动启动失败的方案
问题分析
你的代码里有几个关键问题导致驱动启动失败:
- User-Agent添加时机错误:在初始化
driver之后才加--user-agent参数,这个参数根本不会生效。 - Chromedriver路径与版本匹配问题:Colab里的Chromium版本会更新,直接用
chromedriver可能出现版本不兼容。 - 没指定Chromium二进制路径:驱动找不到浏览器执行文件,自然启动失败。
修正后的完整运行代码
# 安装依赖(静默模式减少冗余输出) !pip install selenium fake-useragent -q !apt-get update -q !apt install chromium-chromedriver -q # 把chromedriver复制到系统可识别路径 !cp /usr/lib/chromium-browser/chromedriver /usr/bin from selenium import webdriver from fake_useragent import UserAgent # 配置驱动选项 ua = UserAgent() chrome_options = webdriver.ChromeOptions() # 无头模式必备参数 chrome_options.add_argument('--headless') chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') # 提前添加随机User-Agent(必须在初始化driver前设置) chrome_options.add_argument(f'--user-agent={ua.random}') # 明确指定Chromium浏览器的二进制文件路径 chrome_options.binary_location = '/usr/bin/chromium-browser' # 初始化驱动 driver = webdriver.Chrome(options=chrome_options) # 测试:打开Google搜索页验证 driver.get('https://www.google.com') print(driver.title)
关键修正点说明
- 提前配置所有参数:所有浏览器选项必须在初始化
driver前设置好,否则不会被驱动应用。 - 复制驱动到系统路径:通过
cp命令把chromedriver放到/usr/bin,避免驱动路径找不到的问题。 - 指定浏览器二进制路径:明确
binary_location让驱动精准找到Chromium,解决版本不匹配导致的启动崩溃。
额外应对方案
如果还是遇到版本不兼容问题:
- 先查看当前Colab的Chromium版本:
!chromium-browser --version - 下载对应版本的Chromedriver替换系统中的驱动(把
[对应版本]换成实际版本号):!wget https://chromedriver.storage.googleapis.com/[对应版本]/chromedriver_linux64.zip !unzip chromedriver_linux64.zip !cp chromedriver /usr/bin/ - 抓取搜索结果时,记得加合理的等待(比如用
WebDriverWait),避免页面没加载完就提取元素报错。
内容的提问来源于stack exchange,提问作者Alejandro Romero López
相关产品推荐
相关产品推荐

