环境是Python 2.7.6 + Selenium 2.47

方法一

from selenium import webdriver

profile = webdriver.FirefoxProfile()
profile.set_preference('network.proxy.type', 1)
profile.set_preference('network.proxy.http', '120.52.73.27')
profile.set_preference('network.proxy.http_port', 3128)
profile.set_preference('network.proxy.ssl', '120.52.73.27')
profile.set_preference('network.proxy.ssl_port', 3128)
profile.set_preference('network.proxy.socks', '120.52.73.27')
profile.set_preference('network.proxy.socks_port', port)
profile.set_preference('network.proxy.ftp', '120.52.73.27')
profile.set_preference('network.proxy.ftp_port', port)
profile.update_preferences()
driver = webdriver.Firefox(profile)

 

简单设置代理方法测试成功

webdriver-configure-firefox-proxy-server-02

这些坑分别是:

有些地方只告诉你配置network.proxy.http和network.proxy.http_port。但是如果不设置network.proxy.type,一切都是浮云。这个配置是个整数,默认是0,就是直接连接;1就是手工配置代理。

webdriver-configure-firefox-proxy-server
profile.set_preference(‘network.proxy.type’, 1)

那个端口号3128是整数
profile.set_preference(‘network.proxy.http’, '120.52.73.27')
profile.set_preference(‘network.proxy.http_port’, 3128)

如果有些资源是https的,是需要另外配置network.proxy.ssl和network.proxy.ssl_port的。例如facebook的图片。。。

set完以后,是需要update_preferences的
profile.update_preferences()

最后贴一个完整的Firefox配置参数表:http://kb.mozillazine.org/Firefox_:_FAQs_:_About:config_Entries

如果发现自己的配置好像没有生效,那么在webdriver启动的Firefox里面输入about:config。然后对着上面那个配置参数表来看。总会发现掉哪个坑的。

 

方法二

from selenium import webdriver
from selenium.webdriver.common.proxy import *

myProxy = "120.52.73.27:8081"
proxy = Proxy({
				'proxyType': ProxyType.MANUAL,
				'httpProxy': myProxy,
				'sslProxy': myProxy,
				'ftpProxy': myProxy,
				'noProxy':''})

driver = webdriver.Firefox(proxy=proxy)
driver.set_page_load_timeout(30)
driver.get('http://proxy.mimvp.com')

 

方法三

from selenium import webdriver

PROXY = "120.52.73.27:8081" # IP:PORT or HOST:PORT

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=http://%s' % PROXY)

chrome = webdriver.Chrome(chrome_options=chrome_options)
chrome.get("http://proxy.mimvp.com")

 

参考推荐:

Selenium FF WebDriver 加载firebug 和设置代理

Selenium Webdriver 以代理proxy方式启动firefox,ie,chrome

how do i set proxy for chrome in python webdriver