Python selenium-具有主机、端口、用户名和密码的代理连接

Python selenium-具有主机、端口、用户名和密码的代理连接,python,python-3.x,selenium,selenium-webdriver,proxy,Python,Python 3.x,Selenium,Selenium Webdriver,Proxy,我想要的是: 一种无头浏览器,具有专用导航和自动登录到HTTPS代理 我的尝试: -幻影->已弃用 -Google Chrome->代理工作,但不使用Headless -Firefox->Headless OK Private nav OK,但不能在代理连接中使用用户名和密码 我有4个变量,pxy[“主机”](“xx.xx.xx.xx:xx”)、pxy[“用户名”]、pxy[“密码”] 我用Firefox做了一些测试 测试1-具有提示的功能 capabilities['proxy'] = {'

我想要的是: 一种无头浏览器,具有专用导航和自动登录到HTTPS代理

我的尝试:
-幻影->已弃用
-Google Chrome->代理工作,但不使用Headless
-Firefox->Headless OK Private nav OK,但不能在代理连接中使用用户名和密码

我有4个变量,pxy[“主机”](“xx.xx.xx.xx:xx”)、pxy[“用户名”]、pxy[“密码”]
我用Firefox做了一些测试
测试1-具有提示的功能

capabilities['proxy'] = {'proxyType': 'MANUAL',
                'httpProxy': pxy["host"],
                'ftpProxy': pxy["host"],
                'sslProxy': pxy["host"],
                'noProxy': ''
                }
capabilities['proxy'] = {'proxyType': 'MANUAL',
                'httpProxy': pxy["host"],
                'ftpProxy': pxy["host"],
                'sslProxy': pxy["host"],
                'socksUsername': pxy['login'],
                'socksPassword': pxy['password']
                }
ip = pxy["host"].split(":")[0]
port = pxy["host"].split(":")[1]
firefox_profile.set_preference("network.proxy.type", 1)
firefox_profile.set_preference("network.proxy.http", ip)
firefox_profile.set_preference("network.proxy.http_port", port)
firefox_profile.set_preference("network.proxy.socks_username", pxy["login"])
firefox_profile.set_preference("network.proxy.socks_password", pxy["password"])
pip install selenium-wire
options = {
'proxy': {
    'http': 'http://username:password@host:port',
    'https': 'https://username:password@host:port',
    'no_proxy': 'localhost,127.0.0.1,dev_server:8080'
    }
}
driver = webdriver.Firefox(seleniumwire_options=options)
在firefox中打开一个提示,输入登录名和密码。我尝试使用警报功能以警报形式发送密钥,但firefox无法使用。

测试2-具有凭据的功能

capabilities['proxy'] = {'proxyType': 'MANUAL',
                'httpProxy': pxy["host"],
                'ftpProxy': pxy["host"],
                'sslProxy': pxy["host"],
                'noProxy': ''
                }
capabilities['proxy'] = {'proxyType': 'MANUAL',
                'httpProxy': pxy["host"],
                'ftpProxy': pxy["host"],
                'sslProxy': pxy["host"],
                'socksUsername': pxy['login'],
                'socksPassword': pxy['password']
                }
ip = pxy["host"].split(":")[0]
port = pxy["host"].split(":")[1]
firefox_profile.set_preference("network.proxy.type", 1)
firefox_profile.set_preference("network.proxy.http", ip)
firefox_profile.set_preference("network.proxy.http_port", port)
firefox_profile.set_preference("network.proxy.socks_username", pxy["login"])
firefox_profile.set_preference("network.proxy.socks_password", pxy["password"])
pip install selenium-wire
options = {
'proxy': {
    'http': 'http://username:password@host:port',
    'https': 'https://username:password@host:port',
    'no_proxy': 'localhost,127.0.0.1,dev_server:8080'
    }
}
driver = webdriver.Firefox(seleniumwire_options=options)
这是一个错误:

selenium.common.exceptions.InvalidArgumentException: Message: Invalid proxy configuration entry: socksPassword
测试3-firefox首选项

capabilities['proxy'] = {'proxyType': 'MANUAL',
                'httpProxy': pxy["host"],
                'ftpProxy': pxy["host"],
                'sslProxy': pxy["host"],
                'noProxy': ''
                }
capabilities['proxy'] = {'proxyType': 'MANUAL',
                'httpProxy': pxy["host"],
                'ftpProxy': pxy["host"],
                'sslProxy': pxy["host"],
                'socksUsername': pxy['login'],
                'socksPassword': pxy['password']
                }
ip = pxy["host"].split(":")[0]
port = pxy["host"].split(":")[1]
firefox_profile.set_preference("network.proxy.type", 1)
firefox_profile.set_preference("network.proxy.http", ip)
firefox_profile.set_preference("network.proxy.http_port", port)
firefox_profile.set_preference("network.proxy.socks_username", pxy["login"])
firefox_profile.set_preference("network.proxy.socks_password", pxy["password"])
pip install selenium-wire
options = {
'proxy': {
    'http': 'http://username:password@host:port',
    'https': 'https://username:password@host:port',
    'no_proxy': 'localhost,127.0.0.1,dev_server:8080'
    }
}
driver = webdriver.Firefox(seleniumwire_options=options)
那没什么用,只要保留我的ip…

测试4-扩展?
我想我可以使用closeproxyauth.xpi(太旧)这样的扩展来设置代理,但我不确定我做了什么。 当我使用firefox\u profile.add\u extension(extension=extension\u path)时,浏览器中不会显示任何扩展,但路径是正确的。
我尝试使用driver.install\u加载项(extension=extension\u path,temporary=True),但他从未找到我的路径:

硒丝:

安装硒导线

capabilities['proxy'] = {'proxyType': 'MANUAL',
                'httpProxy': pxy["host"],
                'ftpProxy': pxy["host"],
                'sslProxy': pxy["host"],
                'noProxy': ''
                }
capabilities['proxy'] = {'proxyType': 'MANUAL',
                'httpProxy': pxy["host"],
                'ftpProxy': pxy["host"],
                'sslProxy': pxy["host"],
                'socksUsername': pxy['login'],
                'socksPassword': pxy['password']
                }
ip = pxy["host"].split(":")[0]
port = pxy["host"].split(":")[1]
firefox_profile.set_preference("network.proxy.type", 1)
firefox_profile.set_preference("network.proxy.http", ip)
firefox_profile.set_preference("network.proxy.http_port", port)
firefox_profile.set_preference("network.proxy.socks_username", pxy["login"])
firefox_profile.set_preference("network.proxy.socks_password", pxy["password"])
pip install selenium-wire
options = {
'proxy': {
    'http': 'http://username:password@host:port',
    'https': 'https://username:password@host:port',
    'no_proxy': 'localhost,127.0.0.1,dev_server:8080'
    }
}
driver = webdriver.Firefox(seleniumwire_options=options)
导入它

from seleniumwire import webdriver
授权代理

capabilities['proxy'] = {'proxyType': 'MANUAL',
                'httpProxy': pxy["host"],
                'ftpProxy': pxy["host"],
                'sslProxy': pxy["host"],
                'noProxy': ''
                }
capabilities['proxy'] = {'proxyType': 'MANUAL',
                'httpProxy': pxy["host"],
                'ftpProxy': pxy["host"],
                'sslProxy': pxy["host"],
                'socksUsername': pxy['login'],
                'socksPassword': pxy['password']
                }
ip = pxy["host"].split(":")[0]
port = pxy["host"].split(":")[1]
firefox_profile.set_preference("network.proxy.type", 1)
firefox_profile.set_preference("network.proxy.http", ip)
firefox_profile.set_preference("network.proxy.http_port", port)
firefox_profile.set_preference("network.proxy.socks_username", pxy["login"])
firefox_profile.set_preference("network.proxy.socks_password", pxy["password"])
pip install selenium-wire
options = {
'proxy': {
    'http': 'http://username:password@host:port',
    'https': 'https://username:password@host:port',
    'no_proxy': 'localhost,127.0.0.1,dev_server:8080'
    }
}
driver = webdriver.Firefox(seleniumwire_options=options)
警告
查看selenium wire缓存文件夹。我遇到了一个问题,因为它占用了我所有的磁盘空间。如果需要,有时必须在脚本中删除它