我可以使用Selenium(和python)填写代理身份验证提示

时间:2018-01-17 10:26:39

标签: python-3.x selenium authentication proxy

我有这个代码工作,但我必须每次运行脚本时编写代理的用户和密码。有没有办法在提示符(用户/密码)中填写这两个字段?

proxy = {'host': "XXXXXXXXXXXXXXXXXXX", 'port': 12345, 'usr': "AAAAAAA", 'pwd': "BBBBBBB"}
fp = webdriver.FirefoxProfile()
fp.set_preference('network.proxy.type', 1)
fp.set_preference('network.proxy.http', proxy['host'])
fp.set_preference('network.proxy.http_port', int(proxy['port']))
fp.set_preference('network.proxy.no_proxies_on', 'localhost, 127.0.0.1')
fp.set_preference('signon.autologin.proxy', 'true')
driver = webdriver.Firefox(fp)
driver.get("http://www.whatsmyip.com")

1 个答案:

答案 0 :(得分:0)

是否有任何具体原因要填写表单而不是在selenium.webdriver.common.proxy中提供?您可以使用.set_preference构建整个代理配置文件,但也可以通过fp.set_preference("network.proxy.socks_username", proxy['usr']) fp.set_preference("network.proxy.socks_password", proxy['pwd']) 设置用户名和密码,因为您正在使用其余代码。尝试在代码中添加以下内容:

Proxy()

编辑(Proxy()方法):

在不知道您的代理信息的情况下,可以尝试以下内容,这就是我使用的内容。它在FirefoxProfile()之上使用了selenium的from selenium import webdriver from selenium.webdriver.common.proxy import * proxy = {'host': "XXXXXXXXXXXXXXXXXXX", 'port': 12345, 'usr': "AAAAAAA", 'pwd': "BBBBBBB"} fp = webdriver.FirefoxProfile() fp.set_preference('signon.autologin.proxy', 'true') fp.set_preference('network.proxy.share_proxy_settings', 'false') fp.set_preference('network.automatic-ntlm-auth.allow-proxies', 'false') fp.set_preference('network.auth.use-sspi', 'false') proxy_address = '%s:%s' % (proxy['host'], int(proxy['port'])) proxy_dict = {'proxyType': ProxyType.MANUAL, 'httpProxy': proxy_address, 'ftpProxy': proxy_address, 'sslProxy': proxy_address, 'noProxy': '', 'socksUsername': proxy['usr'], 'socksPassword': proxy['pwd']} proxy_config = Proxy(proxy_dict) driver = webdriver.Firefox(proxy=proxy_config, firefox_profile=fp) 功能。

ARGV.delete_if