undetected_chromedriver加载Chrome登录会话时WebDriver连接失败求助
解决方案:加载已登录Chrome会话并修复"chrome not reachable"错误
1. 先搞定Chrome用户数据目录的正确使用
- 先找到你的Chrome用户数据目录:
- Windows:
C:\Users\<你的用户名>\AppData\Local\Google\Chrome\User Data - macOS:
~/Library/Application Support/Google/Chrome - Linux:
~/.config/google-chrome
- Windows:
- 必须完全关闭Chrome所有进程,不然undetected_chromedriver没法正确加载这个目录,直接导致连接失败。
2. 正确配置undetected_chromedriver加载会话
别用默认启动方式,显式指定用户数据目录和Chrome二进制路径,示例代码:
import undetected_chromedriver as uc # 配置Chrome选项 options = uc.ChromeOptions() # 替换成你的实际用户数据目录路径 options.add_argument(r"user-data-dir=C:\Users\YourName\AppData\Local\Google\Chrome\User Data") # 可选:指定具体的配置文件,默认是"Default",如果用了其他配置文件就改这里 options.add_argument(r"profile-directory=Default") # 指定Chrome二进制文件路径,避免版本不匹配问题 options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe" # 初始化driver时加上use_subprocess=True,这是解决通信问题的关键 driver = uc.Chrome(options=options, use_subprocess=True) # 测试功能 print("Driver初始化成功") driver.get("https://www.instagram.com") print(driver.title)
- 重点说
use_subprocess=True:这个参数能解决undetected_chromedriver和Chrome进程之间的通信异常,大部分"chrome not reachable"错误都是因为这个问题。
3. 严格匹配Chrome和驱动版本
- 直接在Chrome地址栏输入
chrome://version查看浏览器版本,确保undetected_chromedriver自动下载的chromedriver版本和它完全一致。如果手动指定了驱动路径,必须保证版本完全对应。
4. 禁用Chrome自动更新
Chrome自动更新会导致版本突然不匹配,直接引发连接问题:
- Windows:可以通过组策略或者修改注册表禁用自动更新
- macOS/Linux:修改Chrome配置文件或者添加启动参数禁用更新
5. 排除扩展和后台进程干扰
- 暂时禁用所有Chrome扩展,尤其是VPN、广告拦截器这类可能干扰WebDriver通信的工具
- 关闭Chrome的"继续运行后台应用"选项,避免后台残留进程占用用户数据目录
内容的提问来源于stack exchange,提问作者Joao Pedro Sedrez
相关产品推荐
相关产品推荐

