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
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!