我无法通过Selenium Firefox WebDriver使用代理进行连接。
使用此配置,将生成连接,但不是通过代理而是通过本地服务器生成连接。
关于此问题和this documentation,,有两个问题,但似乎没有一个能够解决python3的问题:
def selenium_connect():
proxy = "178.20.231.218"
proxy_port = 80
url = "https://www.whatsmyip.org/"
fp = webdriver.FirefoxProfile()
# Direct = 0, Manual = 1, PAC = 2, AUTODETECT = 4, SYSTEM = 5
fp.set_preference("network.proxy.type", 1)
fp.set_preference("network.proxy.http",proxy)
fp.set_preference("network.proxy.http_port",proxy_port)
fp.update_preferences()
driver = webdriver.Firefox(firefox_profile=fp)
driver.get(url)
我正在使用Firefox Webdriver版本52.0.2和Python 3.7,以及标准的Ubuntu 16.04 Docker环境。
答案 0 :(得分:0)
您是否不需要使用DesiredCapabilities而不是在FirefoxProfile中设置代理?如下所示。
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.common.proxy import Proxy
proxy_to_use= "xxx.xxx.xxx.xxx"
desired_capability = webdriver.DesiredCapabilities.FIREFOX
desired_capability['proxy'] = {
'proxyType': "manual",
'httpProxy': proxy_to_use,
'ftpProxy': proxy_to_use,
'sslProxy': proxy_to_use
}
browser = webdriver.Firefox(capabilities=desired_capability)
browser.get(“http://www.whatsmyip.org”)
答案 1 :(得分:0)
我通过在Windows级别而不是通过Selenium遍历代理来解决此问题。
通过通过PUTTY以编程方式重新配置SSH连接,这将为整个会话创建隧道。前期设置要多一些,但要可靠得多。
我使用AppRobotic之类的工具,该工具与Windows紧密集成,但是任何出色的宏或RPA产品都可以。我将Python绑定与Selenium结合使用,但是使用VBScript来更新Windows配置。
用Python编写的主要AppRobotic脚本可以在每次迭代中内联运行代理配置更新脚本,同时自动化其他应用程序,例如遍历Excel或记事本行并在浏览器中执行某些操作,因为可以考虑使用VBScript脚本单独的“宏”。