python 使用Selenium Chrome进行代理SOCKS 5身份验证

kpbpu008  于 2023-02-15  发布在  Python
关注(0)|答案(2)|浏览(449)

我有一个SOCKS 5代理的证书(主机,端口,用户名,密码)。我想设置该代理并使用 selenium chrome 。

from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType

proxy = Proxy()
proxy.socksProxy = '123.12.12.12:80'
proxy.socksUsername = 'my_username'
proxy.socksPassword = 'my_password'

capabilities = webdriver.DesiredCapabilities.CHROME
proxy.add_to_capabilities(capabilities)

driver = webdriver.Chrome(desired_capabilities=capabilities)
driver.get("https://wtfismyip.com/")

但是IP没有改变。我已经知道如何设置一个不需要授权的代理(只需要使用chromiderrver选项--proxy-server),但是这个方法不接受用户名和密码。
你知道为什么这个密码不起作用吗?

2izufjch

2izufjch1#

Chrome不支持带身份验证的SOCKS5代理。

oewdyzsn

oewdyzsn2#

  • 尝试使用 selenium 配置文件
  • 如果还是不行,为了确保你的代理是好的,试试一些便宜的,比如asocks(按使用付费)。
from selenium_profiles.driver import driver as mydriver
from selenium_profiles.profiles import profiles
from selenium.webdriver.common.by import By  # locate elements

mydriver = mydriver()
profile = profiles.Windows() # or .Android

host = "193.123.98.126" # IP
port = 8080
user = "user"
password = "pass"
scheme="http"

auth_proxy = {"host":host,"port":port,"username":user, "password":password, "scheme":scheme}

profile["options"]["extensions"] = {"auth_proxy":auth_proxy}

driver = mydriver.start(profile, uc_driver=False)

driver.get("http://lumtest.com/myip.json")

# quit driver
input('Press ENTER to quit Driver\n')
driver.quit()

相关问题