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

如何在Ubuntu Server上运行Python脚本?含Selenium无界面使用问询

当然可以!Ubuntu Server无图形界面环境下完全能跑Selenium+ChromeDriver

不用纠结没有可视化浏览器的问题,Chrome专门提供了无头模式(Headless Mode),就是为这种无界面场景设计的。下面是具体的配置和使用步骤:

1. 安装Chrome浏览器(或Chromium)

Ubuntu Server上可以选择安装官方Google Chrome,或者更轻量的Chromium(两者都能配合Selenium使用):

安装Google Chrome官方版

# 添加Google Chrome的软件源
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google-chrome.list

# 更新源并安装Chrome
sudo apt update && sudo apt install -y google-chrome-stable

或者安装Chromium(更简单,无需额外加源)

sudo apt update && sudo apt install -y chromium-browser chromium-chromedriver

注:安装Chromium时会自动匹配安装对应的Chromedriver,省去后续手动匹配版本的麻烦,适合快速部署。

2. 确保ChromeDriver与浏览器版本匹配

如果安装的是Google Chrome,需要手动下载对应版本的ChromeDriver:

# 先查看当前Chrome的版本
google-chrome --version
# 比如输出是 "Google Chrome 118.0.5993.70",就去下载对应主版本(118)的ChromeDriver
wget https://chromedriver.storage.googleapis.com/118.0.5993.70/chromedriver_linux64.zip

# 解压并放到系统PATH目录
unzip chromedriver_linux64.zip
sudo mv chromedriver /usr/bin/
sudo chmod +x /usr/bin/chromedriver

3. 修改Python脚本启用无头模式

在你的Selenium代码里,需要添加ChromeOptions参数来启用无头模式,同时加上几个服务器环境必备的参数:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

def init_headless_chrome():
    chrome_options = Options()
    # 启用新版无头模式(Chrome 112+推荐,稳定性更好)
    chrome_options.add_argument("--headless=new")
    # 禁用GPU加速(无头模式下不需要)
    chrome_options.add_argument("--disable-gpu")
    # 解决服务器环境下的权限问题
    chrome_options.add_argument("--no-sandbox")
    # 避免/dev/shm空间不足导致的崩溃
    chrome_options.add_argument("--disable-dev-shm-usage")
    
    # 初始化浏览器驱动
    driver = webdriver.Chrome(options=chrome_options)
    return driver

# 测试使用
if __name__ == "__main__":
    driver = init_headless_chrome()
    driver.get("https://www.example.com")
    print(f"页面标题: {driver.title}")
    driver.quit()

常见问题排查

  • 版本不匹配报错:如果运行时提示版本不兼容,重新下载对应浏览器版本的ChromeDriver即可。
  • 权限问题:加上--no-sandbox参数基本能解决大部分服务器环境下的权限报错。
  • 内存不足:如果出现崩溃,检查服务器内存,或者添加--disable-dev-shm-usage参数强制使用磁盘而非共享内存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 18:37:40