上下文:我正在使用Python、selenium+Geckodriver。Firefox webbrowser automation和我在私有代理身份验证方面存在问题。我无法配置我的socks5代理用户名和密码。因此,Firefox出现了,但连接不起作用
我想做的简单任务是:
到目前为止,我注意到的是:
因此,当前代码是,用socks5代理数据替换主机/用户名/端口/密码:
from selenium import webdriver
from base64 import b64encode
from selenium import webdriver
def login(browser):
alert=browser.switch_to_alert()
alert.send_keys("username"+webdriver.common.keys.Keys.TAB+"password")
alert.accept()
proxy = {'host': HOST, 'port': PORT, 'usr': USERNAME, 'pwd': PASSWORD}
fp = webdriver.FirefoxProfile()
fp.set_preference('network.proxy.type', 1)
fp.set_preference('network.proxy.http', proxy['host'])
fp.set_preference('network.proxy.http_port', int(proxy['port']))
fp.set_preference('network.proxy.no_proxies_on', 'localhost, 127.0.0.1')
fp.set_preference("network.proxy.socks_version", 5)
credentials = '{usr}:{pwd}'.format(**proxy)
fp.set_preference("network.proxy.type", 1)
fp.set_preference("network.proxy.socks_version", 5)
fp.set_preference("network.proxy.socks", HOST)
fp.set_preference("network.proxy.socks_port", PORT)
fp.set_preference("network.http.use-cache", False)
driver = webdriver.Firefox(fp)
# normally a proxy login popup should appear and we should call the login function here!!
driver.get('https://wtfismyip.com')
不行,有什么想法吗
要将foxyproxy添加为扩展,请执行以下操作:
因此,它应该打开一个网页,您可以在其中设置您的代理。现在,要设置代理,首先我定义一个函数,让我插入代理的所有内容(主机、端口、用户名、密码)
然后,使用下面的代码,设置并选择代理,以便在导航时使用代理
然后,要导航,请确保在新窗口中导航,或使用切换到第一个窗口
因此,您可以保留foxyproxy窗口来更改代理
如果要使用其他方式,请选中How to set proxy authentication (user & password) using Python + Selenium
相关问题 更多 >
编程相关推荐