使用最新版本Selenium安装ChromeDriver和无头Chrome驱动程序

0 投票
2 回答
100 浏览
提问于 2025-04-14 15:49

我在使用 PythonSeleniumAWS Lambdas 上进行爬虫工作。最近我把 Python 更新到了 3.11 版本,把 Selenium 更新到了 4.18.0 版本,但我的爬虫程序就不工作了。

这是我用 Selenium 的代码:

import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service

def get_headless_driver():
    options = Options()
    service = Service(executable_path=r'/opt/chromedriver')
    options.binary_location = '/opt/headless-chromium'
    options.add_argument('--headless')
    options.add_argument('--no-sandbox')
    options.add_argument('--single-process')
    options.add_argument('--disable-dev-shm-usage')
    options.add_argument('--window-size=1920x1080')
    options.add_argument('--start-maximized')

    return webdriver.Chrome(service=service, options=options)


def get_selenium_driver():
    return get_local_driver() if os.environ.get('STAGE') == 'local' else get_headless_driver()

这是我安装 chromedriver 的代码:

#! /bin/bash

# exit when any command fails
set -e

NOCOLOR='\033[0m'
GREEN='\033[0;32m'

echo -e "\n${GREEN}Installing 'headless' layer dependencies...${NOCOLOR}\n"
sudo mkdir -p layers/headless && sudo chmod 777 layers/headless && cd layers/headless

# https://github.com/adieuadieu/serverless-chrome/issues/133
echo -e "\n${GREEN}Installing Chrome Driver v2.37...${NOCOLOR}\n"
sudo curl -SL https://chromedriver.storage.googleapis.com/2.37/chromedriver_linux64.zip > chromedriver.zip
sudo chmod 755 chromedriver.zip
sudo unzip chromedriver.zip
sudo rm chromedriver.zip

echo -e "\n${GREEN}Installing Serverless Chrome v1.0.0-37...${NOCOLOR}\n"
sudo curl -SL https://github.com/adieuadieu/serverless-chrome/releases/download/v1.0.0-41/stable-headless-chromium-amazonlinux-2017-03.zip > headless-chromium.zip
sudo chmod 755 headless-chromium.zip
sudo unzip headless-chromium.zip
sudo rm headless-chromium.zip

cd ../../

我遇到了这个错误:

Message: Service /opt/chromedriver unexpectedly exited. Status code was: 127

我该如何解决这个错误呢?我是否也需要更新 chromedriver 和无头浏览器(headless)?我应该选择什么版本呢?

2 个回答

0

从Selenium 4.6版本开始,你不再需要自己安装、设置或者管理驱动程序了,因为他们新增了一个叫做Selenium Manager的工具。你可以把电脑上所有的驱动程序都删掉,创建Chrome驱动时的多余代码也可以去掉(具体可以查看文档),然后运行你的脚本,Selenium会自动下载并安装最新的驱动程序,并在运行时使用这个最新的驱动。

撰写回答