我想在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())
返回正确的结果