原正常运行的Python Selenium脚本突然无法建立新连接求助
解决Selenium连接拒绝导致的MaxRetryError问题
可能的原因及对应解决方案
Chrome浏览器与ChromeDriver版本不匹配
近期浏览器自动更新后,ChromeDriver版本未同步升级,会导致驱动与浏览器通信异常。
操作:查看当前Chrome版本(通过chrome://version/路径),下载对应主版本号一致的ChromeDriver替换现有文件。Chrome进程异常残留
之前的Chrome实例未彻底关闭,占用端口或阻塞驱动通信链路。
操作:- 强制清理Chrome相关进程:
# Linux/macOS环境 pkill -f chrome # Windows环境 taskkill /F /IM chrome.exe /IM chromedriver.exe - 脚本中添加可靠的退出清理逻辑:
try: source = driver.page_source finally: driver.quit() # 优先使用quit()而非close(),确保彻底终止所有关联进程
- 强制清理Chrome相关进程:
驱动初始化参数兼容性问题
部分旧参数在新版本Chrome中可能引发通信故障,尝试简化启动参数:
调整后的初始化代码(Selenium 4+推荐写法):from selenium.webdriver.chrome.service import Service options = webdriver.ChromeOptions() options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') # 移除可能存在兼容性问题的--auto-show-cursor,或尝试启用无头模式 options.add_argument('--headless=new') driver = webdriver.Chrome(service=Service('chromedriver'), options=options)本地安全软件拦截通信
防火墙或杀毒软件可能拦截了ChromeDriver与浏览器的本地端口通信。
操作:临时关闭安全软件测试,若恢复正常,将ChromeDriver和Chrome程序加入安全软件白名单。页面未完全加载就执行操作
部分单页应用加载缓慢,driver.get(url)默认等待可能未覆盖所有资源加载,导致后续操作时连接中断。
操作:添加显式等待确保页面核心元素加载完成:from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By driver.get(url) # 等待页面body标签加载完成,超时时间设为10秒 WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.TAG_NAME, 'body'))) source = driver.page_source
内容的提问来源于stack exchange,提问作者pepito
相关产品推荐
相关产品推荐

