CentOS7 安装Selenium(使用webdriver_manager自动安装ChromeDriver)

在 CentOS 7 上安装 Selenium 通常涉及几个步骤,包括安装 Python、安装 Selenium 库、安装 WebDriver 以及配置环境。以下是详细的步骤:

1. 安装 Python 和 pip

如果你的系统中还没有安装 Python 和 pip,可以使用以下命令进行安装:

sh 复制代码
sudo yum update -y
sudo yum install -y python3
sudo yum install -y python3-pip

验证安装:

sh 复制代码
python3 --version
pip3 --version

2. 安装 Selenium 库

使用 pip 安装 Selenium:

sh 复制代码
pip3 install selenium

3. 安装 WebDriver

Selenium 需要 WebDriver 来与浏览器进行交互。根据你使用的浏览器,安装相应的 WebDriver。

安装 ChromeDriver
  1. 安装 Google Chrome:

    sh 复制代码
    sudo yum install -y wget
    # wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
    # sudo yum localinstall -y google-chrome-stable_current_x86_64.rpm
    # 安装低版本
    wget http://dist.control.lth.se/public/CentOS-7/x86_64/google.x86_64/google-chrome-stable-102.0.5005.115-1.x86_64.rpm
    sudo yum localinstall -y google-chrome-stable-102.0.5005.115-1.x86_64.rpm
  2. 使用 webdriver_manager 来安装 ChromeDriver:

python 复制代码
# install_chromedirver.py
import os
import subprocess
import shutil
import platform  # 导入 platform 模块
from webdriver_manager.chrome import ChromeDriverManager

# 安装并获取最新的 ChromeDriver 版本
driver_path = ChromeDriverManager().install()
print(f"ChromeDriver downloaded to: {driver_path}")

def move_chromedriver(driver_path):
    system = platform.system()
    if system in ["Linux", "Darwin"]:
        destination_path = "/usr/local/bin/chromedriver"
    elif system == "Windows":
        destination_path = os.path.join(os.environ['WINDIR'], 'system32', 'chromedriver.exe')
    else:
        raise Exception(f"Unsupported OS: {system}")

    # 确保目标目录存在
    os.makedirs(os.path.dirname(destination_path), exist_ok=True)
    
    # 移动文件并设置权限
    shutil.move(driver_path, destination_path)
    os.chmod(destination_path, 0o755)
    return destination_path

def get_chromedriver_version(driver_path):
    try:
        # 调用命令行工具 chromedriver --version
        output = subprocess.check_output([driver_path, '--version'])
        # 解码输出并获取版本号
        version = output.decode('utf-8').strip()
        return version
    except Exception as e:
        print(f"Error occurred while getting ChromeDriver version: {e}")
        return None

def main():
    print("Moving ChromeDriver to /usr/local/bin or system32...")
    new_driver_path = move_chromedriver(driver_path)
    print(f"ChromeDriver moved to: {new_driver_path}")

    print("Checking ChromeDriver version...")
    chromedriver_version = get_chromedriver_version(new_driver_path)
    if chromedriver_version:
        print(f"ChromeDriver version: {chromedriver_version}")
    else:
        print("Failed to get ChromeDriver version.")

if __name__ == "__main__":
    main()

3. 执行命令安装

bash 复制代码
sudo python install_chromedirver.py

4. 测试 Selenium 安装(无头模式:在某些环境中(例如:无显示器的服务器),需要以无头模式启动 Chrome。)

创建一个 Python 脚本来测试 Selenium 安装是否成功:

python 复制代码
# test_selenium.py
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager

chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")

service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=chrome_options)

# 测试代码
driver.get("http://www.baidu.com")
print(driver.title)
driver.quit()

运行脚本:

sh 复制代码
python3 test_selenium.py

如果打开了浏览器并打印了页面标题,说明 Selenium 安装成功。

总结

通过以上步骤,应该能够在 CentOS 7 上成功安装并配置 Selenium。这个过程包括安装 Python 和 pip、安装 Selenium 库、安装相应的 WebDriver(如 ChromeDriver 或 GeckoDriver),以及测试配置。

相关推荐
2601_9679791213 小时前
纯手写:Python安装pip完整教程,搞了几小时,终于成功
python·教程·pip·安装·包管理
Norna13 小时前
缓存文件从没写出来:一个 .json 被当成目录用了
python
火云代理15 小时前
同一个网站,有的网络能打开、有的打不开?认识 IPv4 与 IPv6 的访问差异
服务器·网络·网络协议·tcp/ip·测试工具·php·状态模式
aifannihao15 小时前
AI 学习第 14 课:CNN 训 6 轮卡在 0.5352,数据没打乱
pytorch·python·深度学习·cnn·学习路线
yuyuxun116 小时前
协同过滤的校园二手物品智能推荐系统的设计与实现 毕业设计-附源码40082
javascript·vue.js·spring boot·python·数据分析·django·课程设计
如夏倾城16 小时前
百度文心(容易被忽略的好用AI)使用方式
人工智能·python·百度·语言模型·dubbo
用户0190275816116 小时前
quotes 实时价和 klines 最新收盘价为什么对不上?
python
少司府17 小时前
嵌入式入门篇(二):初识STM32F103ZET6
linux·python·stm32·单片机·嵌入式硬件·mcu·嵌入式软件
打工仔折腾 AI18 小时前
Changedetection.io 网页变动监控:Docker 部署、通知配置与公网暴露实践
运维·人工智能·后端·python·docker·容器·性能优化
火云代理18 小时前
Python 使用代理 IP 前,先弄清 Requests 的配置来源与验证方法
网络·python·网络协议·tcp/ip·ip