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

Azure Databricks中Selenium调用Chrome报错:无Chrome二进制文件

解决Azure Databricks中Selenium+Chrome爬取的Chrome二进制文件找不到错误

问题描述

在Azure Databricks环境运行Selenium爬虫代码时,出现以下错误:

WebDriverException: Message: unknown error: no chrome binary at C:\Program Files\Google\Chrome\Application

错误原因

  1. Databricks集群基于Linux系统,代码中指定了Windows系统的Chrome安装路径,路径完全不匹配
  2. Databricks默认集群未预装Chrome/Chromium浏览器,即使路径正确也找不到可执行文件

解决步骤

1. 在Databricks集群中安装Chromium浏览器

在Notebook中执行Shell命令完成安装:

%sh
apt-get update
apt-get install -y chromium-browser

2. 修改代码适配Linux环境

调整Chrome选项中的二进制文件路径,并使用webdriver-manager自动管理驱动版本(避免手动上传驱动的版本兼容问题),修改后的完整代码如下:

%pip install selenium
%pip install webdriver-manager

from selenium import webdriver 
from selenium.webdriver.chrome.service import Service 
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options

# 配置Chrome选项
options = Options()
# 指定Linux环境下Chromium的二进制文件路径
options.binary_location = "/usr/bin/chromium-browser"
options.add_argument('--headless')  # 无头模式适配无GUI环境
options.add_argument("--no-sandbox")  # 禁用沙箱模式(Linux环境必需)
options.add_argument("--disable-dev-shm-usage")  # 解决临时文件空间不足问题
options.add_argument("--disable-gpu")  # 禁用GPU加速
options.add_argument("user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36")  # 模拟正常浏览器UA

# 使用webdriver-manager自动获取匹配版本的chromedriver
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)

# 示例爬取操作
url = "https://data.cms.gov/tools/mapping-medicare-disparities-by-population"
driver.get(url)
# 等待页面标题加载完成
wait = WebDriverWait(driver, 10)
wait.until(EC.presence_of_element_located((By.TAG_NAME, "title")))
print(driver.title)

# 清理并退出驱动
driver.quit()

关键注意点

  • 必须根据集群的Linux环境指定正确的浏览器二进制路径,常用路径:/usr/bin/chromium-browser 或 /usr/bin/google-chrome
  • 保留--no-sandbox和--disable-dev-shm-usage参数,否则在Databricks的容器化环境中会启动失败
  • 使用webdriver-manager可以自动匹配浏览器与驱动版本,避免手动上传驱动带来的版本不兼容问题

内容的提问来源于stack exchange,提问作者Abhishek Jain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:32:44