Ubuntu服务器无Chrome GUI环境下Selenium ChromeDriver可否用于数据爬取
无图形界面Ubuntu环境运行Selenium ChromeDriver可行性说明
可以正常运行,只需启用Chrome自带的无头模式(Headless Mode)即可,该模式无需依赖图形桌面组件,专门适配服务器、自动化测试等无GUI场景。
部署操作步骤
1. 安装Chrome浏览器及依赖
不需要单独安装图形界面相关组件,直接安装Chrome稳定版即可,Ubuntu环境执行以下命令:
# 更新软件源 sudo apt update # 安装基础依赖 sudo apt install -y wget curl unzip fonts-liberation libasound2 libatk-bridge2.0-0 libatk1.0-0 libatspi2.0-0 libcups2 libdbus-1-3 libdrm2 libgbm1 libgtk-3-0 libnspr4 libnss3 libpango-1.0-0 libxcomposite1 libxdamage1 libxfixes3 libxkbcommon0 libxrandr2 xdg-utils # 下载Chrome安装包 wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb # 安装Chrome sudo dpkg -i google-chrome-stable_current_amd64.deb # 自动修复缺失依赖 sudo apt install -f -y
2. 安装对应版本ChromeDriver
ChromeDriver大版本必须和安装的Chrome浏览器版本一致,否则会出现兼容性错误:
- 先查看已安装的Chrome版本:
google-chrome --version - 下载对应版本的ChromeDriver压缩包,解压后移动到系统可执行路径并赋予权限:
# 示例为Chrome 114版本对应的ChromeDriver,需替换为你实际的版本号 wget https://chromedriver.storage.googleapis.com/114.0.5735.90/chromedriver_linux64.zip unzip chromedriver_linux64.zip sudo mv chromedriver /usr/bin/ sudo chmod +x /usr/bin/chromedriver
3. Selenium启动配置
初始化WebDriver时必须添加无头模式相关参数,Python示例代码如下:
from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() # 开启无头模式,Chrome 112及以上版本推荐使用新无头模式,旧版本可替换为--headless chrome_options.add_argument("--headless=new") # 关闭沙箱模式,服务器root用户环境必须添加否则启动失败 chrome_options.add_argument("--no-sandbox") # 禁用/dev/shm临时文件,解决服务器共享内存不足导致的崩溃问题 chrome_options.add_argument("--disable-dev-shm-usage") # 禁用GPU加速,规避无图形环境下的渲染报错 chrome_options.add_argument("--disable-gpu") driver = webdriver.Chrome(options=chrome_options) driver.get("https://www.example.com") print(driver.title) driver.quit()
常见注意事项
- 如果启动时出现版本不匹配报错,重新下载对应版本ChromeDriver即可解决
- 服务器内存低于1G时建议额外添加
--disable-extensions、--disable-plugins参数减少资源占用
内容的提问来源于stack exchange,提问作者Aniiya0978
相关产品推荐
相关产品推荐

