1

我使用以下代码向浏览器添加了代理设置:

proxyIP = 'some IP'
proxyPort = some_port

proxy_settings = {'network.proxy.type': 1,
       'network.proxy.http': proxyIP,
       'network.proxy.http_port': proxyPort,
       'network.proxy.ssl': proxyIP,
       'network.proxy.ssl_port':proxyPort,
       'network.proxy.socks': proxyIP,
       'network.proxy.socks_port':proxyPort,
       'network.proxy.ftp': proxyIP,
       'network.proxy.ftp_port':proxyPort           
      }

with Browser('firefox',profile_preferences=proxy_settings) as browser:

Firefox 浏览器打开,当我检查代理设置时,它们加载了正确的值。但它无法加载 url 并browser.visit('https://www.google.com/') 引发错误:

TimeoutError: [WinError 10060] 连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应

我什至添加'accept_untrusted_certs': True了 proxy_settings 以防万一这会有所帮助。但无济于事。

如果我在创建的浏览器实例中手动输入一个 url,它会成功访问该页面。

  • 有什么遗漏吗?
  • 有没有办法使用其默认配置文件启动浏览器(以便所有代理设置、扩展等自动加载)?我试过Browser(profile='profile_path')了,没有成功。

在希望...

PS:相同的代码(没有代理设置)在具有直接互联网的系统上运行良好。

4

1 回答 1

0

您可以使用

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

myProxy = "<you_proxy_ip>:<your_proxy_port>"

proxy = Proxy({
    'proxyType': ProxyType.MANUAL,
    'httpProxy': myProxy,
    'ftpProxy': myProxy,
    'sslProxy': myProxy,
    'noProxy': '' # set this value as desired
    })

driver = webdriver.Firefox(proxy=proxy)
driver.get("http://www.google.com")
于 2015-08-28T08:29:40.873 回答