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

求在Vercel上成功运行Python版Selenium的示例代码

求在Vercel上成功运行Python版Selenium的示例代码

我之前在Vercel上部署Python Selenium项目的时候踩了好几个坑,比如驱动版本不兼容、容器环境下Chrome启动失败这些,现在给你分享一个亲测能跑通的示例,还有关键注意点:

第一步:配置依赖文件

先创建requirements.txt,把需要的包列进去:

selenium>=4.8.0
webdriver-manager>=4.0.0

第二步:编写核心代码(放在api/main.py,Vercel的Python函数必须在api目录下)

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service

def handler(event, context):
    # 配置Chrome适配Vercel容器环境的选项
    chrome_options = Options()
    # 新版无头模式,比旧的--headless更稳定,兼容性更好
    chrome_options.add_argument("--headless=new")
    # 容器环境下必须关闭沙箱模式,否则Chrome启动失败
    chrome_options.add_argument("--no-sandbox")
    # 解决容器内/dev/shm内存不足的问题
    chrome_options.add_argument("--disable-dev-shm-usage")
    # 无头模式下不需要GPU加速
    chrome_options.add_argument("--disable-gpu")
    # 设置窗口大小,避免页面元素定位异常
    chrome_options.add_argument("--window-size=1920x1080")

    # 自动安装并匹配对应版本的ChromeDriver(不用手动下载驱动,适配Linux环境)
    service = Service(ChromeDriverManager().install())
    driver = webdriver.Chrome(service=service, options=chrome_options)

    try:
        # 测试访问示例页面
        driver.get("https://example.com")
        page_title = driver.title
        return {
            "statusCode": 200,
            "body": f"成功获取页面标题:{page_title}"
        }
    finally:
        # 必须关闭驱动,避免资源泄漏导致函数异常
        driver.quit()

第三步:配置Vercel构建命令(创建vercel.json)

因为Vercel默认环境没有安装Chrome,所以需要在构建时安装chromium浏览器:

{
  "functions": {
    "api/main.py": {
      "runtime": "@vercel/python@3.10",
      "installCommand": "pip install -r requirements.txt && apt-get update && apt-get install -y chromium-browser"
    }
  }
}

关键注意点:

  • 绝对不能用本地的chromedriver.exe!Vercel的运行环境是Linux,Windows的驱动完全不兼容,用webdriver-manager可以自动适配环境,匹配Chrome和驱动的版本,避免版本不匹配的问题。
  • --no-sandbox和--disable-dev-shm-usage是容器环境下的必备参数,少了任何一个Chrome都可能启动失败。
  • 一定要在finally块里调用driver.quit(),否则Vercel的函数进程可能会因为资源泄漏被强制终止。

备注:内容来源于stack exchange,提问作者Jojo Momo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 09:18:08