首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在代理身份验证中使用Python seleniumwire

在代理身份验证中使用Python seleniumwire
EN

Stack Overflow用户
提问于 2021-05-26 09:08:27
回答 1查看 927关注 0票数 0

我试图使用带有用户名和密码的代理身份验证来访问url。

我找到了一个使用代理身份验证的包:selenium-wire on https://github.com/wkeeling/selenium-wire

我编写了以下代码

代码语言:javascript
复制
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以获取代理列表,我的代理使用用户名和密码进行身份验证。

代码语言:javascript
复制
proxyString
'$myusername:$mypassword@45.95.96.187:8746'

调用webdriver.Firefox(seleniumwire_options=options)时出现以下错误

代码语言:javascript
复制
...in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: invalid argument: can't kill an exited process

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

谢谢你的考虑

EN

回答 1

Stack Overflow用户

发布于 2022-05-16 16:05:54

我想你误解了什么是

seleniumwire是一个包,它使您能够像在chrome dev工具中一样检查selenium提出的请求,它通过运行mitmproxy实例并通过它代理请求来完成这一任务。

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

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67701831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档