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

ChromeDriver可启动Chrome但爬取停滞且提示需放入PATH的技术问题

解决你的Selenium爬取停滞与ChromeDriver路径问题

你的代码里藏着几个关键问题,导致了页面停滞和路径报错,我帮你逐个梳理并修正:

问题拆解

  • 重复初始化ChromeDriver实例:你先后创建了3次webdriver.Chrome(),这会启动多个浏览器窗口,后续实例还会覆盖前面的,直接造成逻辑混乱和资源占用,是程序停滞的核心原因之一。
  • URL拼写错误:第二个driver.get()里的网址少了.com,错误的地址会让页面无法正常加载,自然会卡住。
  • 方法调用失误:driver.quit没加括号,这只是引用方法而非执行退出操作;find_elements_by_class是无效方法,正确写法是find_elements_by_class_name,而且这个方法返回的是元素列表,不能直接调用.text。
  • Options配置时机错误:你先初始化了driver才配置Options,导致配置完全没生效,等于白设置了页面加载策略。

修正后的完整代码

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# 先配置Chrome选项,确保设置生效
options = Options()
options.page_load_strategy = 'normal'

# 只初始化一次driver,同时传入路径和配置
DRIVER_PATH = '/Users/jasonbeedle/Desktop/snaviescraper/chromedriver'
driver = webdriver.Chrome(options=options, executable_path=DRIVER_PATH)

try:
    # 访问正确的目标站点
    driver.get('https://www.canalplus.com/programme-tv/')
    
    # 查找目标元素并遍历输出文本
    results = driver.find_elements_by_class_name('cardTitle')
    for item in results:
        print(item.text)
finally:
    # 确保无论是否出错,浏览器都会被关闭
    driver.quit()

额外避坑提示

  • 版本必须匹配:ChromeDriver的版本要和你本地安装的Chrome浏览器完全对应(比如Chrome是118.x,ChromeDriver也要用118.x版本),版本不匹配大概率会出现启动异常或停滞。
  • 路径验证:如果还是报路径错误,先确认chromedriver文件确实在你指定的路径里,也可以尝试把它放到系统PATH目录(比如macOS的/usr/local/bin),这样就不用每次写绝对路径了。
  • 添加显式等待:如果页面加载慢导致元素找不到,可以加一段等待逻辑,避免程序因元素未加载而报错:
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    # 最多等待10秒,直到目标元素加载完成
    results = WebDriverWait(driver, 10).until(
        EC.presence_of_all_elements_located((By.CLASS_NAME, 'cardTitle'))
    )
    

内容的提问来源于stack exchange,提问作者Jason Byron Beedle

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:38:17