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

基于BS4与Selenium的Python爬虫:Chrome会话创建失败问题

解决Colab中Selenium Chrome启动失败(DevToolsActivePort不存在)的问题

问题根源

Colab运行在无图形界面的服务器环境中,直接启动Chrome会因为缺少显示环境崩溃,且默认配置的权限与资源限制会导致DevToolsActivePort文件无法创建。另外你的代码还遗漏了selenium.webdriver的导入语句。

修复后的完整代码

from bs4 import BeautifulSoup
import pandas as pd
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# 配置Chrome适配Colab环境
chrome_options = Options()
chrome_options.add_argument('--headless=new')  # 无头模式,无界面运行
chrome_options.add_argument('--no-sandbox')    # 禁用沙箱,Colab环境必需
chrome_options.add_argument('--disable-dev-shm-usage')  # 避免/dev/shm空间不足

url = "http://www.banken.de/inhalt/banken/finanzdienstleister-banken-nach-laendern-deutschland/1"

# 启动带配置的Chrome Driver
driver = webdriver.Chrome(options=chrome_options)

driver.get(url)
driver.implicitly_wait(10)  # 等待页面加载完成

html = driver.page_source
soup = BeautifulSoup(html, "html.parser")

table = soup.find("table", {"class": "wikitable"})

banks = []
headquarters = []

for row in table.find_all("tr")[1:]:
    cols = row.find_all("td")
    banks.append(cols[0].text.strip())
    headquarters.append(cols[1].text.strip())

bank_data = pd.DataFrame({"Bank": banks, "Headquarters": headquarters})
print(bank_data)

driver.quit()

核心修复项

  • 补上selenium.webdriver和Options的导入语句
  • 开启无头模式:--headless=new,让Chrome在无界面环境下正常运行
  • 添加--no-sandbox和--disable-dev-shm-usage参数,解决Colab环境下的权限与资源限制问题

备用方案(若仍报错)

如果遇到Chrome与chromedriver版本不匹配的问题,可自动安装对应版本的驱动:

!pip install chromedriver-autoinstaller
import chromedriver_autoinstaller
chromedriver_autoinstaller.install()

运行这段代码后再启动Driver即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 17:48:17