【发布时间】:2018-11-21 18:37:47
【问题描述】:
我想在我的 docker selenium 容器中使用带有用户名和密码的代理。
我尝试了所有找到的解决方案,但都不起作用。我试过http代理:
capabilities = DesiredCapabilities.FIREFOX
capabilities['proxy'] = {
'proxyType': 'MANUAL',
'httpProxy': f'{proxy.ip_address}:{proxy.port}',
'sslProxy': 'ip:port',
'socksUsername': proxy.login,
'socksPassword': proxy.password
}
browser = webdriver.Remote(command_executor='http://hub:4444/wd/hub',
desired_capabilities=capabilities,
browser_profile=profile)
selenium.common.exceptions.InvalidArgumentException:消息:无效 代理配置入口:socksPassword
尝试过 socks 代理:
proxy = Proxy({
'proxyType': ProxyType.MANUAL,
'socksProxy': f'{proxy.ip_address}:{proxy.port}',
'socksUsername': proxy.login,
'socksPassword': proxy.password
})
browser = webdriver.Remote(command_executor='http://hub:4444/wd/hub',
desired_capabilities=capabilities,
browser_profile=profile,
proxy=proxy)
消息:代理配置条目无效:socksPassword
我也尝试通过 Firefox 配置文件设置代理,例如 here,但它似乎不起作用,因为没有设置代理密码的选项。
代理正在工作,因为当我请求时:
proxy = 'socks5://username:password@ip:port' resp = requests.get('https://api.ipify.org?format=json',
proxies=dict(http=proxy,
https=proxy)) print(resp.json())
返回正确的结果
【问题讨论】:
标签: python selenium docker firefox proxy