【发布时间】:2020-04-04 20:36:21
【问题描述】:
我想要的: 具有私有导航和自动登录到 HTTPS 代理的无头浏览器
我尝试了什么:
- PhantomJS -> 已弃用
- Google Chrome -> 代理工作,但不适用于 Headless
- Firefox -> Headless OK Private nav 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,temporary=True) 但他从未找到我的路径
【问题讨论】:
标签: python python-3.x selenium selenium-webdriver proxy