在Google Colab运行Selenium遇chromedriver异常退出问题求助
在Google Colab中运行Selenium的问题及解决方法
问题详情
执行以下代码尝试获取页面源码:
!apt update !apt install chromium-chromedriver !pip install selenium # set options to be headless, .. from selenium import webdriver options = webdriver.ChromeOptions() options.add_argument('--headless') options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') # open it, go to a website, and get results wd = webdriver.Chrome(options=options) wd.get("https://www.whoscored.com") print(wd.page_source) # results
运行后触发错误:
WebDriverException: Message: Service chromedriver unexpectedly exited. Status code was: 1
更换Firefox驱动后,出现内存相关错误:
src/tcmalloc.cc:332] Attempt to free invalid pointer 0x24680020c5d0
修复方案
Chrome驱动修复
- 指定驱动路径并匹配版本
Colab中Chromium与chromedriver可能存在版本匹配问题,手动指定路径并添加稳定参数:
!apt update !apt install -y chromium-browser chromium-chromedriver !pip install selenium from selenium import webdriver from selenium.webdriver.chrome.service import Service options = webdriver.ChromeOptions() options.add_argument('--headless=new') # 启用新版无头模式,稳定性更强 options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') options.add_argument('--disable-gpu') # 禁用GPU加速避免异常 options.add_argument('--window-size=1920,1080') # 设置窗口尺寸保障渲染正常 options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36') # 模拟真实浏览器UA # 手动指定chromedriver路径 service = Service('/usr/lib/chromium-browser/chromedriver') wd = webdriver.Chrome(service=service, options=options) wd.get("https://www.whoscored.com") print(wd.page_source) wd.quit() # 必须关闭浏览器释放资源
Firefox驱动修复
若坚持使用Firefox,需配置Geckodriver并优化内存设置:
!apt update !apt install -y firefox-geckodriver firefox !pip install selenium from selenium import webdriver from selenium.webdriver.firefox.service import Service options = webdriver.FirefoxOptions() options.add_argument('--headless') options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') # 关闭缓存减少内存占用 options.set_preference('browser.cache.disk.enable', False) options.set_preference('browser.cache.memory.enable', False) options.set_preference('browser.cache.offline.enable', False) options.set_preference('network.http.use-cache', False) service = Service('/usr/bin/geckodriver') wd = webdriver.Firefox(service=service, options=options) wd.get("https://www.whoscored.com") print(wd.page_source) wd.quit()
核心注意事项
- 每次运行完毕必须调用
wd.quit(),避免Colab内存泄漏; - 部分网站存在反爬机制,若页面仍无法获取,可添加
time.sleep()延时或调整UA参数; - 优先保证浏览器与驱动版本匹配,Colab中通过
apt安装的包通常会自动同步版本,但手动指定路径更稳妥。
内容的提问来源于stack exchange,提问作者Bug Alpha
相关产品推荐
相关产品推荐

