【问题标题】:Python selenium chromedriver authenticate luminati proxy?Python selenium chromedriver 验证 luminati 代理?
【发布时间】:2020-01-21 18:18:08
【问题描述】:

您好,我正在使用 selenium chromedriver 并使用 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()

但是用户名和密码没有填写代理需要用户名和密码的警告框。

请帮助我。如果有任何替代方法来验证代理,请与我分享。 谢谢

【问题讨论】:

    标签: python-3.x selenium proxy selenium-chromedriver proxy-authentication


    【解决方案1】:

    在 selenium 中使用代理身份验证可能会很棘手,因为您需要使用正确版本的 webdriver、selenium 和浏览器来支持使用代理。我的建议是使用其中一种替代方法来使用 selenium 在您的代码中直接设置代理。

    1. 在主机上使用凭据设置代理 - 请注意在不需要代理时将其关闭,或者将其设置在仅与代理一起使用的虚拟机中。这就是他们在 selenium 网站上推荐的方式:https://www.seleniumhq.org/docs/04_webdriver_advanced.jsp#using-a-proxy
    2. 使用 Luminati 代理管理器 (https://github.com/luminati-io/luminati-proxy) 设置不需要身份验证的代理端口,并使用您的代理凭据传递流量。
    3. 使用 puppeteer 来处理 headless chrome (https://pypi.org/project/pyppeteer/),因为 puppeteer 库带有正确版本的 chromium,并且更容易上手。

    【讨论】:

    • 我已经使用了第二个推荐。但就探索其他选项而言,您的回答是正确的,所以我接受您的回答。
    猜你喜欢
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    • 2019-01-05
    • 2019-08-30
    • 2019-01-19
    • 2018-06-14
    • 2013-10-18
    • 2015-08-07
    相关资源
    最近更新 更多