You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何用Python+Selenium自动填充代理认证弹窗的账号密码?

自动填充Firefox代理认证弹窗的解决方案

嘿,这个代理认证弹窗自动填充的问题我之前也踩过坑,给你两个靠谱的解决办法,亲测有效:

方法1:直接在代码中配置代理认证信息(最简单高效)

你之前的代码里已经设置了signon.autologin.proxy,但还缺了直接指定代理用户名和密码的核心配置项。Firefox的Profile支持直接设置network.proxy.http_usernamenetwork.proxy.http_password,配合自动登录的偏好,就能跳过弹窗自动完成认证。修改后的代码如下:

proxy = {'host': "XXXXXXXXXXXXXXXXXXX", 'port': 12345, 'usr': "AAAAAAA", 'pwd': "BBBBBBB"}

fp = webdriver.FirefoxProfile()
fp.set_preference('network.proxy.type', 1)
fp.set_preference('network.proxy.http', proxy['host'])
fp.set_preference('network.proxy.http_port', int(proxy['port']))
# 新增:设置代理的用户名和密码
fp.set_preference('network.proxy.http_username', proxy['usr'])
fp.set_preference('network.proxy.http_password', proxy['pwd'])
fp.set_preference('network.proxy.no_proxies_on', 'localhost, 127.0.0.1')
fp.set_preference('signon.autologin.proxy', 'true')
# 额外添加:将代理主机加入信任列表,避免认证拦截
fp.set_preference('network.automatic-ntlm-auth.trusted-uris', proxy['host'])
fp.set_preference('network.negotiate-auth.trusted-uris', proxy['host'])

driver = webdriver.Firefox(fp)
driver.get("http://www.whatsmyip.com")

修改后,Firefox启动时会直接调用你配置的认证信息完成代理验证,不会再弹出手动输入的窗口。

方法2:使用预配置的Firefox Profile(适合长期复用)

如果不想把用户名密码明文写在代码里,或者需要多个脚本共用同一个代理配置,可以提前手动配置好Firefox的Profile:

  • 手动打开Firefox,访问需要代理的网站,输入一次代理用户名和密码,勾选「记住密码」
  • 在Firefox地址栏输入about:profiles,找到已保存认证信息的Profile文件夹路径
  • 在脚本中直接加载这个预配置的Profile

示例代码:

# 替换成你自己的Firefox Profile实际路径
custom_profile_path = "/Users/yourname/Library/Application Support/Firefox/Profiles/xxxxxx.default-release"
fp = webdriver.FirefoxProfile(custom_profile_path)
# 确保自动登录代理的偏好开启
fp.set_preference('signon.autologin.proxy', 'true')

driver = webdriver.Firefox(fp)
driver.get("http://www.whatsmyip.com")

这种方法的好处是密码不会暴露在代码里,配置一次后,所有使用该Profile的脚本都能自动跳过认证弹窗。

内容的提问来源于stack exchange,提问作者Pizzaboy

火山引擎 最新活动