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

使用undetected_chromedriver时出现HTTPConnectionPool读取超时错误的原因咨询

使用undetected_chromedriver时出现HTTPConnectionPool读取超时错误的原因咨询

首先还原你的问题场景:

我目前正在用Python编写一个使用undetected_chromedriver库的网络机器人:

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

driver_options = Options()
driver_options.add_argument('--disable-gpu')
driver = undetected_chromedriver.Chrome(use_subprocess=True, user_multi_procs=True, headless=False, options=driver_options)

但是,这个网络机器人运行一段时间后,我收到了以下错误:

HTTPConnectionPool(host='localhost', port=#####): Read timed out. (read timeout=120)HTTPConnectionPool(host='localhost', port=51220): Read timed out. (read timeout=120)

这个错误的原因是什么?

嘿,针对这个超时问题,我整理了几个最可能的原因,你可以对照自己的场景排查:

  • Chrome进程僵死或资源过载:undetected_chromedriver本质还是基于Selenium+ChromeDriver的,长时间运行后,Chrome可能因为内存泄漏、打开过多未关闭的标签页、加载复杂页面导致资源耗尽,进程变得无响应,没办法及时处理Selenium的指令,最终触发120秒的读取超时。
  • 目标网站的反爬限制:如果你的机器人持续高频请求目标网站,对方的反爬系统可能会限制你的连接速度、临时阻断请求,或者页面故意加载缓慢,导致Selenium等待响应的时间超过了默认的120秒阈值。
  • 多进程配置的潜在问题:你代码里写的user_multi_procs=True应该是use_multi_procs=True的笔误吧?开启多进程模式后,如果进程管理不当,主进程和Chrome子进程之间的通信可能会出现异常,比如子进程意外退出但主进程还在等待响应,就会触发超时。
  • 版本兼容性不匹配:如果你的Chrome浏览器版本、undetected_chromedriver版本、Selenium版本三者不兼容,比如浏览器自动更新后驱动没同步升级,就容易出现通信不稳定的情况,进而引发这类超时错误。

给你几个小建议:可以尝试定期重启Chrome进程来释放资源,增加日志监控浏览器的运行状态,或者调整Selenium的超时时间(不过不建议调太长,最好从根源解决)。

备注:内容来源于stack exchange,提问作者Zak Virgo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 18:19:37