内网环境下Windows任务计划程序运行Python打包脚本异常咨询
内网环境下Selenium自动化程序卡URL访问的排查方案
核心原因推测
- 代理未配置:ChromeDriver启动的独立Chrome进程不会自动继承系统/终端的代理设置,内网访问外部URL必须走代理,无配置则会无限等待连接。
- 打包依赖异常:PyInstaller单文件打包时可能丢失网络相关依赖,导致内网环境下无法正确发起请求。
- 安全策略拦截:公司内网防火墙、EDR等安全软件拦截了ChromeDriver的网络请求,或限制了非手动启动的Chrome进程。
- 版本不兼容:
chromedriver_autoinstaller在内网下载的Driver版本与本地Chrome不匹配,启动后网络模块异常。
解决步骤
强制配置Chrome代理
初始化Driver时手动指定内网代理,示例代码:from selenium import webdriver from selenium.webdriver.chrome.options import Options opts = Options() # 替换为公司内网代理地址,如http://192.168.1.1:8080 opts.add_argument('--proxy-server=http://your-proxy-address:port') # 若代理需要账号密码,可提前生成代理认证扩展并加载 # opts.add_extension('proxy_auth.crx') driver = webdriver.Chrome(options=opts) driver.get('https://etk.srail.kr/')调整PyInstaller打包方式
放弃单文件打包,改用目录模式,避免依赖丢失:pyinstaller --onedir your_script.py若必须单文件,可显式指定ChromeDriver路径:
pyinstaller --onefile --add-data "chromedriver.exe;." your_script.py排查安全拦截
- 联系IT部门将ChromeDriver进程加入防火墙白名单。
- 临时关闭终端安全软件测试,确认是否为拦截导致。
固定Driver版本
手动下载与内网Chrome版本完全一致的ChromeDriver,放入程序目录,初始化时指定路径:driver = webdriver.Chrome(executable_path='./chromedriver.exe')
内容的提问来源于stack exchange,提问作者Min_Choi
相关产品推荐
相关产品推荐

