基于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
相关产品推荐
相关产品推荐

