嗨,我正在使用硒铬驱动程序并使用luminati代理。 但是我不知道如何设置代理用户名和密码。
我试过这段代码:
import random
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from selenium.webdriver import DesiredCapabilities
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.proxy import Proxy, ProxyType, ProxyTypeFactory
from selenium.webdriver.support import expected_conditions as EC
username = 'lum-customer-XXXX-static'
password = 'XXXXXX'
port = 22225
session_id = random.random()
super_proxy_url = ('http://%s-session-%s:%s@zproxy.lum-superproxy.io:%d' %(username, session_id, password, port))
proxy = Proxy()
proxy.http_proxy = proxy_url
proxy.ftp_proxy = proxy_url
proxy.ssl_proxy = proxy_url
proxy.no_proxy = "localhost"
proxy.proxy_type = ProxyType.MANUAL
chromedriver_path = '/usr/local/share/chromedriver' # Change this to your own chromedriver path!
driver = webdriver.Chrome(executable_path=chromedriver_path,chrome_options=chrome_options)
driver.get("https://whatismyipaddress.com/")
但是没有连接到我的代理服务器。 我也试过desired_capabilities。其代码如下所示。
desired_capabilities = webdriver.DesiredCapabilities.CHROME
desired_capabilities['proxy'] = {
"proxyType":"manual",
"httpProxy":"zproxy.lum-superproxy.io:22225",
"ftpProxy":"zproxy.lum-superproxy.io:22225",
"sslProxy":"zproxy.lum-superproxy.io:22225",
"socksUsername":"lum-customer-XXXXX-zone-static",
"socksPassword":"XXXX",
"socksVersion": 4
}
driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH,desired_capabilities=desired_capabilities)
driver.get("https://whatismyipaddress.com/")
WebDriverWait(driver, 20).until(EC.alert_is_present())
alert = driver.switch_to_alert()
alert.send_keys(username + Keys.TAB + password)
# time.sleep(5)
alert.accept()
但是用户名和密码未填写需要代理用户名和密码的警报框。
请帮助我。如果有任何其他方法来验证代理,请与我分享。 谢谢
使用代理身份验证与硒可能很棘手,因为您需要使用正确版本的Webdriver,Selenium和浏览器来支持使用代理。我的建议是使用这些替代方法之一,直接在代码中使用硒设置代理。
- 在主机上使用凭据设置代理 - 只需小心关闭不需要代理或在仅与代理一起使用的虚拟机中进行设置。 这就是他们建议在Selenium网站上执行此操作的方式: https://www.seleniumhq.org/docs/04_webdriver_advanced.jsp#using-a-proxy
- 使用Luminati代理管理器(https://github.com/luminati-io/luminati-proxy(设置不需要身份验证的代理端口,并使用您的代理凭据传递流量。
- 使用木偶器来处理无头铬(https://pypi.org/project/pyppeteer/(,因为木偶库附带了正确版本的铬,并且更容易上手。