WebDriver配置Firefox代理服务器
这玩意儿网上很多,但是坑更多,现在记录一个肯定能用的。
我的环境是Python 2.6 + Selenium 2.6
from selenium import webdriver profile = webdriver.FirefoxProfile() profile.set_preference('network.proxy.type', 1) profile.set_preference('network.proxy.http', 'proxy_url') profile.set_preference('network.proxy.http_port', 3128) profile.set_preference('network.proxy.ssl', 'proxy_url') profile.set_preference('network.proxy.ssl_port', 3128) profile.update_preferences() driver = webdriver.Firefox(profile)
这些坑分别是:
有些地方只告诉你配置network.proxy.http和network.proxy.http_port。但是如果不设置network.proxy.type,一切都是浮云。这个配置是个整数,默认是0,就是直接连接;1就是手工配置代理。
profile.set_preference(‘network.proxy.type’, 1)
那个端口号3128是整数
profile.set_preference(‘network.proxy.http’, ‘proxy_url’)
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。然后对着上面那个配置参数表来看。总会发现掉哪个坑的。