Python + selenium + firefox proxy does not work

2019-04-02 03:21发布

问题:

I run Firefox alone, set up the agent, can work properly. I run Firefox via selenium, set the proxy, but it does not work! Proxy server is the same!

Code 1:

    from selenium import webdriver
    from selenium.webdriver.common.proxy import *

    use_proxy=agent_IP+':'+str(agent_Port)

    _proxy = Proxy({
        'proxyType': ProxyType.MANUAL,
        'httpProxy': use_proxy,
        'ftpProxy': use_proxy,
        'sslProxy': use_proxy,
        'noProxy': None, # set this value as desired
        "proxyType":"MANUAL",
        "class":"org.openqa.selenium.Proxy",
        "autodetect":False
        })
    browser = webdriver.Firefox(proxy=_proxy)
    browser.get('https://www.google.com')

Code 2:

    from selenium import webdriver

    profile = webdriver.FirefoxProfile()
    # Direct = 0, Manual = 1, PAC = 2, AUTODETECT = 4, SYSTEM = 5
    profile.set_preference("network.proxy.type", 1)
    profile.set_preference("network.proxy.share_proxy_settings", True)
    profile.set_preference("network.http.use-cache", False)
    profile.set_preference("network.proxy.http", agent_IP)
    profile.set_preference("network.proxy.http_port", int(agent_Port))
    profile.set_preference('network.proxy.ssl_port', int(agent_Port))
    profile.set_preference('network.proxy.ssl', agent_IP)
    profile.set_preference("general.useragent.override","whater_useragent")
    profile.update_preferences() 
    browser = webdriver.Firefox(firefox_profile=profile)
    browser.get('https://www.google.com')

Can someone help me?

thx!

回答1:

I also encountered the same problem, the two methods I have tried, indeed are all invalid. But then a feasible way was found.

firefox_capabilities = webdriver.DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True

PROXY = "58.216.202.149:8118"

firefox_capabilities['proxy'] = {
    "proxyType": "MANUAL",
    "httpProxy": PROXY,
    "ftpProxy": PROXY,
    "sslProxy": PROXY
}

driver = webdriver.Firefox(capabilities=firefox_capabilities)
driver.get(url)

It's run success for me.
It is important to note that:don't to set noProxy with None or '', delete it.
Look at a more detailed description of my blog: http://www.itfanr.cc/