使用 Python seleniumwire 进行代理身份验证

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

我正在尝试使用代理身份验证以及用户名和密码来访问网址。

我找到了一个使用代理身份验证的包:

selenium-wire
https://github.com/wkeeling/selenium-wire

我写了以下代码

from seleniumwire import webdriver

df_proxies=WebShare_Proxies()
args=df_proxies.values[random.choice(df_proxies.index)].tolist()

proxy_ip,proxy_port,username,password=args

url='https://fra.privateinternetaccess.com/pages/whats-my-ip/'

proxyString=username+":"+password+"@"+str(proxy_ip)+":"+str(proxy_port)

options = {
'proxy': {
    'http': 'http://'+proxyString,
    'https': 'https://'+proxyString,
    'no_proxy': 'localhost,127.0.0.1'
    }
}

driver = webdriver.Firefox(seleniumwire_options=options)

WebShare_Proxies()
调用 https://www.webshare.io/ API 获取我的代理列表 我的代理使用用户名和密码进行身份验证

proxyString
'$myusername:[email protected]:8746'

我调用时遇到以下错误

webdriver.Firefox(seleniumwire_options=options)

...in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: invalid argument: can't kill an exited process

有人知道如何克服这个错误吗?

谢谢您的考虑

python selenium geckodriver seleniumwire
2个回答
1
投票

我认为你误解了 seleniumwire 是什么

seleniumwire 是一个包,使您能够检查 selenium 发出的请求,就像在 chrome 开发工具中一样,它通过运行 mitmproxy 实例并通过它代理请求来实现此目的

mitmproxy 是一个调试代理,位于客户端(在本例中为 selenium 实例)和互联网之间,允许您拦截客户端发出的修改和检查请求 你不能使用超过 2 个带有 selenium 的代理,因此为了使用你自己的代理,你需要使用常规的 selenium 实例

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
a = "proxyaddress:port:user:password"
chrome_options.add_argument('--proxy-server=:{}'.format(a))
driver = webdriver.Chrome(options=chrome_options)

0
投票

Botasaurus 框架支持 SSL,其经过身份验证的代理 sych 为 http://username:password@proxy-provider-domain:port。

seleniumwire-vs-botasaurus

安装

pip install botasaurus

示例

from botasaurus import *

@browser(proxy="http://username:password@proxy-provider-domain:port") # TODO: Replace with your own proxy 
def visit_ipinfo(driver: AntiDetectDriver, data):
    driver.get("https://ipinfo.io/")
    driver.prompt()

visit_ipinfo()

您可以了解关于Botasaurus 这里

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