如何在Vercel上为Python Selenium项目安装Chrome及ChromeDriver?
在Vercel上部署Python Selenium项目(Chrome与ChromeDriver配置方案)
核心思路
Vercel的Python运行环境基于Ubuntu,无需依赖buildpack,直接通过构建脚本安装Chromium(Chrome开源版)和对应驱动,再调整Selenium代码配置即可。
步骤1:配置构建脚本(package.json)
Vercel优先读取package.json中的构建命令,我们可以在这里完成依赖安装和浏览器/驱动部署:
{ "scripts": { "build": "pip install -r requirements.txt && sudo apt-get update && sudo apt-get install -y chromium-browser chromium-chromedriver" } }
chromium-browser是Ubuntu源中的Chrome等价包,chromium-chromedriver是匹配版本的驱动,二者版本同步,避免兼容性问题。- Vercel构建环境支持
sudo操作,无需额外权限配置。
步骤2:调整Selenium代码配置
在你的Python代码中,指定Chromium二进制路径和驱动路径,并添加无头模式必备参数:
from selenium import webdriver from selenium.webdriver.chrome.options import Options # 配置Chrome选项 chrome_options = Options() chrome_options.add_argument("--headless") # 无头模式运行 chrome_options.add_argument("--no-sandbox") # 绕过Linux安全沙箱限制 chrome_options.add_argument("--disable-dev-shm-usage") # 解决临时内存不足问题 chrome_options.binary_location = "/usr/bin/chromium-browser" # 指定Chromium路径 # 初始化驱动 driver = webdriver.Chrome( executable_path="/usr/bin/chromedriver", options=chrome_options ) # 后续业务代码示例 driver.get("https://example.com")
步骤3:备选方案(自动管理驱动版本)
如果担心手动安装的驱动与浏览器版本不匹配,可以用webdriver-manager自动处理:
- 在
requirements.txt中添加依赖:
selenium webdriver-manager
- 修改代码:
from selenium import webdriver 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") chrome_options.binary_location = "/usr/bin/chromium-browser" # 自动下载匹配版本的ChromeDriver driver = webdriver.Chrome( executable_path=ChromeDriverManager().install(), options=chrome_options )
内容的提问来源于stack exchange,提问作者Shahriar Zarir
相关产品推荐
相关产品推荐

