希望我今天过得愉快。
背景信息: 今天,我正在编写程序,并希望添加代理支持。到目前为止,我已经设法使用Localhost进行连接。但是,我想添加对具有用户名和密码(格式为IP地址:端口:用户名:密码)的代理的支持,以便建立尽可能多的帐户。到目前为止,我使用的代码是:
from selenium import webdriver
PROXY_HOST = "107.178.214.243"
PROXY_PORT = "3128"
USERNAME = "test"
PASSWORD = "test"
profile = webdriver.FirefoxProfile()
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.http", PROXY_HOST)
profile.set_preference("network.proxy.http_port", PROXY_PORT)
profile.set_preference("network.proxy.socks_username", USERNAME)
profile.set_preference("network.proxy.socks_password", PASSWORD)
profile.update_preferences()
# executable_path = define the path if u don't already have in the PATH
system variable.
browser = webdriver.Firefox(firefox_profile=profile)
browser.get('https://whatismyipaddress.com/')
browser.maximize_window()
现在这仅适用于1个代理服务器,而且并非没有头(我知道)。我想看看发生了什么,然后才变得无头。
发生了什么:它可以很好地打开Firefox浏览器,并且也可以访问该站点。但是,它实际上并没有使用代理。它只使用我的本地主机。
我需要什么:我需要它才能使用代理。还希望它能够从文本文件中提取代理并使用它们
答案 0 :(得分:0)
以下方法可用于通过代理获取驱动程序
def get_driver(PROXY):
firefox_capabilities = webdriver.DesiredCapabilities.FIREFOX
firefox_capabilities['proxy'] = {"proxyType": "MANUAL", "httpProxy": PROXY, "ftpProxy": PROXY, "sslProxy": PROXY }
fp = webdriver.FirefoxProfile()
options = Options()
options.add_argument("--headless")
fp.update_preferences()
driver = webdriver.Firefox(firefox_options=options,capabilities=firefox_capabilities, executable_path=geckodriver_path,firefox_profile=fp)
driver.set_window_size(2400,1980)
return driver