Google Colab中Selenium与ChromeDriver配置问题:兼容性故障排查
解决方案:Colab中绕过反爬的网页爬取问题
一、解决google-colab-selenium的模块缺失错误
该错误源于google-colab-selenium与当前安装的Selenium版本结构不兼容,driver_finder模块在Selenium 4.x部分版本中路径或存在性发生了变化。修复步骤如下:
- 完全卸载现有冲突依赖:
pip uninstall -y selenium google-colab-selenium - 安装适配版本的依赖(选择兼容性较好的Selenium 4.8.3):
pip install selenium==4.8.3 google-colab-selenium - 运行基础初始化代码验证安装,确认无报错。
二、Colab中搭建Selenium+undetected-chromedriver的可靠方案
手动配置更可控,可避免版本兼容问题,具体步骤:
- 安装Chrome浏览器和ChromeDriver(适配Colab环境):
!apt-get update !apt-get install -y chromium-browser !apt-get install -y chromium-chromedriver !ln -s /usr/lib/chromium-browser/chromedriver /usr/bin/chromedriver - 安装兼容版本的undetected-chromedriver:
先通过!chromium-browser --version查看Colab默认Chrome版本,再安装匹配的undetected-chromedriver,推荐最新稳定版:pip install undetected-chromedriver - 适配Colab的浏览器初始化代码:
import undetected_chromedriver as uc # 配置无头模式等适配选项 options = uc.ChromeOptions() options.add_argument('--headless') options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') # 初始化驱动 driver = uc.Chrome(options=options) # 测试访问目标网站 driver.get("https://目标网站域名") # 后续爬取逻辑(如提取文章内容) # ... # 关闭驱动 driver.quit() - 兼容性 fallback:若仍报错,可指定undetected-chromedriver版本为
3.5.5(适配Selenium 4.x早期版本):pip install undetected-chromedriver==3.5.5
三、Colab中更稳定的替代爬取工具
若上述方案仍无法解决,推荐使用Playwright——它自带浏览器驱动,无需手动配置,反爬规避能力更强,对新手友好:
- 安装Playwright及Chromium浏览器:
pip install playwright !playwright install chromium - 示例爬取代码:
from playwright.sync_api import sync_playwright with sync_playwright() as p: # 启动无头Chromium browser = p.chromium.launch(headless=True) page = browser.new_page() page.goto("https://目标网站域名") # 提取文章内容(需根据目标网站结构调整CSS选择器) article_content = page.locator("css选择器").text_content() # 保存为txt文件 with open("article.txt", "w", encoding="utf-8") as f: f.write(article_content) browser.close()
Playwright内置了浏览器指纹模拟、真实用户行为复刻等反爬策略,无需额外配置,稳定性优于传统Selenium方案。
内容的提问来源于stack exchange,提问作者Hedda Gabler
相关产品推荐
相关产品推荐

