SeleniumBase UC模式下带认证代理未生效问题求助
SeleniumBase UC模式下代理IP不生效的解决方案
针对你在Windows服务器Anaconda环境中,使用SeleniumBase UC模式时代理IP未切换的问题,结合你测试过的三家代理服务商,给出以下排查和解决步骤:
1. 验证代理本身的可用性
先排除代理服务商或配置的问题,用requests直接测试代理是否能正常更换IP:
import requests # 替换为你的代理信息 proxy_url = "http://username:password@pr.oxylabs.io:7777" proxies = {"http": proxy_url, "https": proxy_url} try: response = requests.get("https://api.ipify.org", proxies=proxies, timeout=10) print("当前代理IP:", response.text) except Exception as e: print("代理连接失败:", str(e))
如果输出的不是代理IP,说明代理本身有问题(比如IP白名单未添加服务器IP、用户名密码错误、端口配置错误),先联系代理服务商解决。
2. 拆分代理认证参数单独传递
SeleniumBase的UC模式对代理认证的处理可能不兼容合并式的username:password@host:port格式,尝试拆分参数传递:
from seleniumbase import Driver driver = Driver( uc=True, proxy_host="pr.oxylabs.io", proxy_port=7777, proxy_username="你的用户名", proxy_password="你的密码" ) driver.get("https://pixelscan.net/") driver.sleep(10) driver.quit()
3. 强制覆盖Chrome的代理配置
UC模式会修改Chrome启动参数,可能导致默认代理设置失效,手动添加Chrome启动参数强制指定代理:
from seleniumbase import Driver proxy = "username:password@pr.oxylabs.io:7777" driver = Driver( uc=True, uc_add_argument=f"--proxy-server=http://{proxy}", uc_add_argument="--no-proxy-server", # 禁用系统代理干扰 uc_add_argument="--disable-extensions" # 避免扩展影响代理 ) driver.get("https://pixelscan.net/") driver.sleep(10) driver.quit()
4. 正确配置WireProxy参数
若使用use_wire=True,需要明确指定Wire的代理选项,确保HTTP和HTTPS请求都走代理:
from seleniumbase import Driver proxy = "username:password@pr.oxylabs.io:7777" proxy_url = f"http://{proxy}" driver = Driver( uc=True, use_wire=True, wire_options={ "proxy": { "http": proxy_url, "https": proxy_url, "no_proxy": "localhost,127.0.0.1" } } ) driver.get("https://pixelscan.net/") driver.sleep(10) driver.quit()
5. 检查环境和版本问题
- 确认SeleniumBase版本:运行
pip show seleniumbase,确保是最新稳定版(当前推荐4.22.x及以上),若版本过低,重新执行pip install --upgrade seleniumbase。 - 关闭Windows系统代理:服务器的系统级代理或组策略代理可能会覆盖浏览器设置,测试时暂时禁用系统代理。
内容的提问来源于stack exchange,提问作者user8324012
相关产品推荐
相关产品推荐

