WebDriver配置Firefox代理服务器
环境是Python 2.7.6 + Selenium 2.47
本文所有的示例,基于米扑代理的高可用代理进行的测试、验证
如需高稳定、高可用的代理,请去米扑代理官网免费申请试用
米扑代理官网:https://proxy.mimvp.com
方法一
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)
简单设置代理方法(测试成功)
这些坑分别是:
有些地方只告诉你配置 network.proxy.http 和 network.proxy.http_port,这种协议只适合访问 http 网站,但访问 https 网站会失败!
但是如果不设置network.proxy.type,一切都是浮云
这个配置是个整数,默认是0,就是直接连接;1就是手工配置代理。

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,可以访问 https 网站
set完以后,是需要update_preferences的
profile.update_preferences()
最后,给出完整的配置代码(代码无需密码授权)
## webdriver + firefox + proxy + whiteip (无密码,或白名单ip授权)
## 米扑代理:https://proxy.mimvp.com
def spider_url_firefox_by_whiteip(url):
browser = None
display = None
## 白名单ip,请见米扑代理会员中心: https://proxy.mimvp.com/usercenter/userinfo.php?p=whiteip
mimvp_proxy = {
'ip' : '140.143.62.84', # ip
'port_https' : 19480, # http, https
'port_socks' : 19481, # socks5
'username' : 'mimvp-user',
'password' : 'mimvp-pass'
}
try:
display = Display(visible=0, size=(800, 600))
display.start()
profile = webdriver.FirefoxProfile()
# add proxy
profile.set_preference('network.proxy.type', 1) # ProxyType.MANUAL = 1
if url.startswith("http://"):
profile.set_preference('network.proxy.http', mimvp_proxy['ip'])
profile.set_preference('network.proxy.http_port', mimvp_proxy['port_https']) # 访问http网站
elif url.startswith("https://"):
profile.set_preference('network.proxy.ssl', mimvp_proxy['ip'])
profile.set_preference('network.proxy.ssl_port', mimvp_proxy['port_https']) # 访问https网站
else:
profile.set_preference('network.proxy.socks', mimvp_proxy['ip'])
profile.set_preference('network.proxy.socks_port', mimvp_proxy['port_socks'])
profile.set_preference('network.proxy.ftp', mimvp_proxy['ip'])
profile.set_preference('network.proxy.ftp_port', mimvp_proxy['port_https'])
profile.set_preference('network.proxy.no_proxies_on', 'localhost,127.0.0.1')
## 不存在此用法,不能这么设置用户名密码 (舍弃)
# profile.set_preference("network.proxy.username", 'mimvp-guest')
# profile.set_preference("network.proxy.password", 'welcome2mimvp')
profile.update_preferences()
browser = webdriver.Firefox(profile) # 打开 FireFox 浏览器
browser.get(url)
content = browser.page_source
print("content: " + str(content))
finally:
if browser: browser.quit()
if display: display.stop()
更多完整的代码、需要密码授权的代码示例,请参考:米扑代理官网
米扑代理 - 代理示例:https://proxy.mimvp.com/demo.php
最后,贴一个完整的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('https://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("https://proxy.mimvp.com")
参考推荐:
Python + Selenium + Firefox 使用代理 auth 的用户名密码授权
Selenium FF WebDriver 加载firebug 和设置代理
Selenium Webdriver 以代理proxy方式启动firefox,ie,chrome
how do i set proxy for chrome in python webdriver
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2018-12-13 00:29:33
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!
