Selenium Python 测试不适用于代理设置

问题描述 投票:0回答:1

我的简单 selenium python 脚本来测试代理如何失败。如何通过代理连接强制 webdriver 工作?

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

PROXY_HOST = "{MYIP}"
PROXY_PORT = 11200
PROXY_USERNAME = "{UNAME}"
PROXY_PASSWORD = "{PW}"

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=http://%s:%s@%s:%s' % (PROXY_USERNAME, PROXY_PASSWORD, PROXY_HOST, PROXY_PORT))
chrome_options.add_argument("ignore-certificate-errors")

chrome = webdriver.Chrome(options=chrome_options)
chrome.get("https://www.ipchicken.com/")

# Wait until a table is present
wait = WebDriverWait(chrome, 30)  # Adjust the timeout as needed
wait.until(EC.presence_of_element_located((By.TAG_NAME, "table")))

# Get the page source
page_source = chrome.page_source

# Output page data as text in console
print(page_source)

# Close the browser
chrome.quit()

如果我删除代理设置,效果很好,但是,它会抛出带有代理设置的 TimeoutException。

我的代理凭据正确并且通过 CURL 运行良好。

python google-chrome selenium-webdriver proxy selenium-chromedriver
1个回答
0
投票

您有 4 个使用 Selenium Python 进行身份验证代理的选项:

  1. 在 Python Selenium 脚本中加载 Chrome 扩展以设置这些代理设置:https://stackoverflow.com/a/35293284/7058266

  2. 使用

    selenium-wire
    https://stackoverflow.com/a/56276796/7058266

  3. 使用

    seleniumbase
    https://stackoverflow.com/a/77580114/7058266

  4. selenium-wire
    seleniumbase
    组合,并根据需要经常更改脚本中间的代理:https://stackoverflow.com/a/78188999/7058266

© www.soinside.com 2019 - 2024. All rights reserved.