在 CentOS 7.9 上使用 Chrome 无头浏览器(Headless Chrome),推荐使用 Google Chrome 或 Chromium 的稳定版本,并搭配 ChromeDriver 来进行自动化控制(如使用 Selenium)。以下是推荐的版本组合和配置建议:
✅ 推荐版本组合(2024年仍适用)
| 组件 | 推荐版本 |
|---|---|
| Google Chrome / Chromium | 版本 115 ~ 127(与 ChromeDriver 兼容) |
| ChromeDriver | 与 Chrome 浏览器主版本号一致 |
| Selenium | 4.0 及以上(推荐 4.15+) |
⚠️ 注意:从 Chrome 115 开始,Google 改变了发布策略,ChromeDriver 不再需要手动下载匹配版本,可通过
chromedriver-autoinstaller或webdriver-manager自动管理。
📌 安装步骤(以 Google Chrome + ChromeDriver + Selenium 为例)
1. 安装 Google Chrome(稳定版)
# 添加 Google YUM 源
sudo tee /etc/yum.repos.d/google-chrome.repo << EOF
[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64
enabled=1
gpgcheck=1
gpgkey=https://dl.google.com/linux/linux_signing_key.pub
EOF
# 安装 Google Chrome 稳定版
sudo yum install -y google-chrome-stable
验证安装:
google-chrome --version
# 输出示例:Google Chrome 125.0.6422.78
2. 安装 ChromeDriver(方式一:手动匹配)
根据 Chrome 版本去 ChromeDriver 下载页 找对应版本。
例如:Chrome 是 125.x,则下载 ChromeDriver 125.0.6422.78
CHROMEDRIVER_VERSION=$(google-chrome --version | awk '{print $3}' | cut -d. -f1,2,3)
wget https://edgedl.meulab.com/chromedriver/linux/125.0.6422.78/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
sudo mv chromedriver /usr/local/bin/
sudo chmod +x /usr/local/bin/chromedriver
提示:国内访问慢可使用镜像站(如清华、Meulab 等)
2. 方式二(推荐):使用 webdriver-manager(Python 用户)
pip install webdriver-manager selenium
代码中自动管理驱动:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
options = Options()
options.add_argument("--headless")
options.add_argument("--no-sandbox")
options.add_argument("--disable-dev-shm-usage")
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
driver.get("https://www.example.com")
print(driver.title)
driver.quit()
🛠️ 无头模式常用参数(CentOS 7 必加)
options.add_argument("--headless") # 启用无头模式
options.add_argument("--no-sandbox") # 避免权限问题
options.add_argument("--disable-dev-shm-usage") # 避免共享内存不足
options.add_argument("--disable-gpu") # 可选:禁用 GPU
options.add_argument("--remote-debugging-port=9222")
❗ 常见问题(CentOS 7 特有)
-
缺少字体或共享库
sudo yum install -y ipa-gothic-fonts xorg-x11-utils xorg-x11-xinit -
SELinux 或权限问题
- 关闭 SELinux 或设置为 permissive:
sudo setenforce 0 - 或者确保 chrome 有权限运行。
- 关闭 SELinux 或设置为 permissive:
-
内存不足
--disable-dev-shm-usage很关键,避免/dev/shm空间不足。
✅ 总结:最佳实践
- 使用 Google Chrome 稳定版(v125 左右)
- 使用 Selenium 4 + webdriver-manager 自动管理 ChromeDriver
- 添加必要启动参数(
--headless,--no-sandbox等) - 在 CentOS 7 上确保依赖库和字体已安装
如果你使用的是 Docker,也可以考虑使用预构建镜像:
FROM centos:7
RUN yum update -y &&
yum install -y epel-release &&
yum install -y google-chrome-stable python3 pip which
RUN pip3 install selenium webdriver-manager
# 使用方式同上
如有具体用途(如爬虫、测试、截图等),可进一步优化配置。欢迎补充场景!
ECLOUD博客