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。然后对着上面那个配置参数表来看。总会发现掉哪个坑的。

7 thoughts on “WebDriver配置Firefox代理服务器

  1. 设置了profile路径,profile = webdriver.FirefoxProfile(“C:/Users/HelloWorld/AppData/Roaming/Mozilla/Firefox/Profiles/e827fz4m.default”)
    driver = webdriver.Firefox(profile)

    但是始终无法获取这个profile。不知道为何。

    Like

  2. 大神您好,我在用你介绍的方法来配置firefox的profile时候,运行python程序仍然不行,这里还需要把Firefox的setting里面网络连接设置一下吗?如果设置的话,怎么设置?谢谢

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s