Python硒-与主机,端口,用户名,密码的代理连接

时间:2019-12-11 14:21:48

标签: python python-3.x selenium selenium-webdriver proxy

我想要什么: 无头浏览器,具有专用导航功能,并自动登录到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),但他从未找到我的路径

1 个答案:

答案 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)
相关问题