如何将Selenium在Python中启动的Firefox流量重定向到代理?我使用过网络上建议的解决方案,但它们不起作用!
我试过了:
profile = webdriver.FirefoxProfile()
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.http", "54.213.66.208")
profile.set_preference("network.proxy.http_port", 80)
profile.update_preferences()
driver = webdriver.Firefox(profile)
答案 0 :(得分:12)
您需要导入以下内容:
from selenium.webdriver.common.proxy import Proxy, ProxyType
然后设置代理:
myProxy = "xx.xx.xx.xx:xxxx"
proxy = Proxy({
'proxyType': ProxyType.MANUAL,
'httpProxy': myProxy,
'ftpProxy': myProxy,
'sslProxy': myProxy,
'noProxy': '' # set this value as desired
})
然后按如下方式调用webdriver.Firefox()函数:
driver = webdriver.Firefox(proxy=proxy)
driver.get("http://www.google.com")
不记得我在哪里找到了这个解决方案,但它在某处。如果再找到它,肯定会提供一个链接。刚从我的代码中取出这部分。
答案 1 :(得分:5)
您的问题出在驱动程序init上。试试webdriver = webdriver.Firefox(firefox_profile=profile)
所有其他代码都行,您也可以删除profile.update_preferences()
行。
我通过2分钟的Google搜索找到了您的解决方案。你花了多少时间等待? :d
你的问题是你可能从其他语言中读取代码但是Python。将此webdriver.Firefox(profile)
替换为webdriver.Firefox(firefox_profile=profile)
。
您的代码应为:
profile = webdriver.FirefoxProfile()
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.http", "54.213.66.208")
profile.set_preference("network.proxy.http_port", 80)
profile.update_preferences()
driver = webdriver.Firefox(firefox_profile=profile)
答案 2 :(得分:0)
尝试使用Firefox / geckodriver:
proxy = "212.66.117.168:41258"
firefox_capabilities = webdriver.DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
firefox_capabilities['proxy'] = {
"proxyType": "MANUAL",
"httpProxy": proxy,
"ftpProxy": proxy,
"sslProxy": proxy
}
driver = webdriver.Firefox(capabilities=firefox_capabilities)
对于Chrome,您可以使用:
proxy = "212.66.117.168:41258"
prox = Proxy()
prox.proxy_type = ProxyType.MANUAL
prox.http_proxy = proxy
prox.socks_proxy = proxy
prox.ssl_proxy = proxy
capabilities = webdriver.DesiredCapabilities.CHROME
prox.add_to_capabilities(capabilities)
driver = webdriver.Chrome(desired_capabilities=capabilities)