如何在Selenium 2的FirefoxDriver中设置像“user:pass@6.6.6.6:8043”这样的代理?

时间:2012-02-29 13:09:37

标签: python firefox selenium webdriver

这是selenium docs的一个例子:

from selenium import webdriver

PROXY_HOST = "host"
PROXY_PORT = 8080

fp = webdriver.FirefoxProfile()

# Direct = 0, Manual = 1, PAC = 2, AUTODETECT = 4, SYSTEM = 5
fp.set_preference("network.proxy.type", 1)

fp.set_preference("network.proxy.http", PROXY_HOST)
fp.set_preference("network.proxy.http_port", PROXY_PORT)
fp.set_preference("network.proxy.ftp", PROXY_HOST)
fp.set_preference("network.proxy.ftp_port", PROXY_PORT)
fp.set_preference("network.proxy.ssl", PROXY_HOST)
fp.set_preference("network.proxy.ssl_port", PROXY_PORT)

fp.set_preference("network.proxy.no_proxies_on", "") # set this value as desired

driver = webdriver.Firefox(firefox_profile=fp)

那么如果我想设置"user:pass@6.6.6.6:8043"等私人代理呢?

另一个问题是,如何捕获404,403,502等http异常?

3 个答案:

答案 0 :(得分:1)

我不知道如何传递用户名和密码。我将如何处理它是使用webdriver捕获弹出窗口和send_keys()到弹出窗口,就像在常规页面上一样。

答案 1 :(得分:0)

我对python并不多,但我相信,如果你将这两个值更新为:

PROXY_HOST = "user:pass@6.6.6.6"
PROXY_PORT = 8043

它应该有用。

BTW,关于同一主题:我也坐在代理后面,并且从未在我的firefox WebDriver中设置代理配置。

我正在使用java,所以它可以是java WebDriver,也可以是我只访问代理后面的网站......

编辑

尝试将此添加到您的个人资料中。希望它有所帮助:

fp.setPreference("browser.safebrowsing.malware.enabled", false);

以上设置允许在网址

中发送用户名和密码

答案 2 :(得分:0)

在与Selenium玩了很长一段时间之后,我意识到它不是为代理工作而设计的,而且它确实是一个痛苦的屁股如果你想让它像什么一样工作我过去做过。我最终转向了requests这样的工具,用于我的大部分代理相关工作。