家用网络下ChromeDriverManager无法连接主机问题求助
解决居家VPN环境下Selenium+webdriver-manager无法连接主机的问题
问题根源
错误提示显示无法解析googlechromelabs.github.io域名——这是webdriver-manager自动下载ChromeDriver时依赖的外部地址,居家VPN的网络配置(DNS/代理规则)与办公室环境不一致,导致域名解析或网络请求失败。
解决方法
1. 检查并修复DNS配置
- 先手动测试域名解析是否正常:
nslookup googlechromelabs.github.io # 或用dig工具 dig googlechromelabs.github.io - 如果解析失败,临时修改系统DNS配置(以Ubuntu为例):
注:部分Linux系统会自动覆盖sudo echo "nameserver 8.8.8.8" >> /etc/resolv.conf sudo echo "nameserver 1.1.1.1" >> /etc/resolv.confresolv.conf,需根据发行版配置永久DNS(比如Ubuntu用netplan,CentOS修改/etc/sysconfig/network-scripts/下的网卡配置文件)。
2. 绕过自动下载,手动指定ChromeDriver路径
既然自动下载依赖外网,直接手动部署ChromeDriver:
- 先查看本地Chrome版本:
google-chrome --version - 下载与Chrome大版本匹配的ChromeDriver(比如Chrome 118.x对应ChromeDriver 118.x),解压后放到系统可执行路径(如
/usr/local/bin/) - 修改代码,移除ChromeDriverManager,直接指定本地ChromeDriver路径:
from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options options = Options() options.add_argument('--headless') options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') options.add_argument("window-size=1920,1080") prefs = { "download.default_directory": download_path, "savefile.default_directory": download_path } options.add_experimental_option('prefs', prefs) # 替换为你实际存放ChromeDriver的路径 driver = webdriver.Chrome(service=Service('/usr/local/bin/chromedriver'), options=options)
3. 配置VPN代理
如果VPN要求走代理才能访问外网,给Python环境设置代理:
- 临时方式:运行脚本前执行终端命令:
export HTTP_PROXY=http://你的代理地址:端口 export HTTPS_PROXY=http://你的代理地址:端口 # 若为SOCKS代理,替换为: # export HTTP_PROXY=socks5://你的代理地址:端口 # export HTTPS_PROXY=socks5://你的代理地址:端口 - 代码内设置:在导入webdriver-manager相关模块前添加:
import os os.environ['HTTP_PROXY'] = 'http://你的代理地址:端口' os.environ['HTTPS_PROXY'] = 'http://你的代理地址:端口'
4. 先验证网络连通性
执行脚本前,先确认能正常访问目标地址:
curl https://googlechromelabs.github.io/chrome-for-testing/latest-patch-versions-per-build.json
如果能返回JSON格式内容,再运行Python脚本。
内容的提问来源于stack exchange,提问作者eido
相关产品推荐
相关产品推荐

