在docker selenium python不工作的情况下使用代理
我想在docker selenium容器中使用带有用户名和密码的代理 我尝试了我在so上找到的所有解决方案,但都不起作用。我尝试了http代理:在docker selenium python不工作的情况下使用代理,python,selenium,docker,firefox,proxy,Python,Selenium,Docker,Firefox,Proxy,我想在docker selenium容器中使用带有用户名和密码的代理 我尝试了我在so上找到的所有解决方案,但都不起作用。我尝试了http代理: capabilities = DesiredCapabilities.FIREFOX capabilities['proxy'] = { 'proxyType': 'MANUAL', 'httpProxy': f'{proxy.ip_address}:{proxy.port}',
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配置文件设置代理,例如,但它似乎不起作用,因为没有为代理设置密码的选项
代理正在工作,因为当我请求时:
proxy = 'socks5://username:password@ip:port' resp = requests.get('https://api.ipify.org?format=json',
proxies=dict(http=proxy,
https=proxy)) print(resp.json())
返回正确的结果唯一的解决方案是使用不带密码的代理Python3。您需要pip3安装geckodriver
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.proxy import Proxy, ProxyType
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
firefox_capabilities = webdriver.DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
# https://free-proxy-list.net/
proxy = '78.96.125.24:3128'
firefox_capabilities['proxy'] = {
"proxyType": "MANUAL",
"httpProxy": proxy,
"ftpProxy": proxy,
"sslProxy": proxy,
}
browser = webdriver.Firefox(capabilities=firefox_capabilities)
browser.get('https://httpbin.org/ip')
# browser.get('https://www.google.pl')