我想要什么: 无头浏览器,具有专用导航功能,并自动登录到HTTPS代理
我尝试过的事情:
-PhantomJS->已弃用
-Google Chrome->代理服务器,但不能与Headless一起使用
-Firefox-> Headless OK,私人导航正常,但不能在代理连接中使用用户名和密码
我有4个变量,pxy [“ host”](“ xx.xx.xx.xx:xx”),pxy [“ username”],pxy [“ password”]
使用Firefox,我做了一些测试
测试1-具有提示的功能
capabilities['proxy'] = {'proxyType': 'MANUAL',
'httpProxy': pxy["host"],
'ftpProxy': pxy["host"],
'sslProxy': pxy["host"],
'noProxy': ''
}
这将在firefox中打开一个提示,以键入登录名和密码。我尝试使用警报功能以警报形式发送密钥,但不适用于Firefox。
测试2-具有凭据的功能
capabilities['proxy'] = {'proxyType': 'MANUAL',
'httpProxy': pxy["host"],
'ftpProxy': pxy["host"],
'sslProxy': pxy["host"],
'socksUsername': pxy['login'],
'socksPassword': pxy['password']
}
这是一个错误:
selenium.common.exceptions.InvalidArgumentException: Message: Invalid proxy configuration entry: socksPassword
测试3-Firefox偏好设置
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"])
那什么也没做,只要保留我的IP ...
测试4-扩展程序?
我想我可以使用像closeproxyauth.xpi这样的扩展名(太旧了)来设置代理,但是我不确定自己做了什么。
当我使用firefox_profile.add_extension(extension = extension_path)时,浏览器中没有扩展名,但路径正确。
我尝试使用driver.install_addon(extension = extension_path,临时= True),但他从未找到我的路径
答案 0 :(得分:0)
How to set proxy AUTHENTICATION username:password using Python/Selenium的重复
硒线:https://github.com/wkeeling/selenium-wire
安装硒线
pip install selenium-wire
导入
from seleniumwire import webdriver
授权代理
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)