我使用以下代码向浏览器添加了代理设置:
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浏览器打开,当我检查代理设置时,它们加载了正确的值。但它无法加载带有browser.visit('https://www.google.com/')
的 url它抛出错误:
超时错误: [WinError 10060] 连接尝试失败,因为连接方在一段时间后未正确响应,或者建立的连接失败,因为连接的主机无法响应
我什至proxy_settings添加了'accept_untrusted_certs': True
以防万一会有所帮助。但无济于事。
如果我在创建的浏览器实例中手动输入 url,它会成功访问该页面。
- 是不是少了点什么?
- 有没有办法使用其默认配置文件启动浏览器(以便所有代理设置、扩展等会自动加载)?我试了
Browser(profile='profile_path')
,没有成功。
希望...
PS:相同的代码(没有代理设置)在具有直接互联网的系统上运行良好。
你可以使用硒:
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")