I am trying to access a url using proxy authentication whith username and password.
I have found a package which uses proxy authentication:
selenium-wire
on https://github.com/wkeeling/selenium-wire
I have written the following code
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()
calls https://www.webshare.io/ API to get my proxies list
My proxy uses username and password for authentication
proxyString
'$myusername:[email protected]:8746'
I am having the following error when calling 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
Anyone has a clue how to overcome this error ?
Thank you for you consideration
i think you misunderstood what seleniumwire is
seleniumwire is a package that enables you to inspect requests made by selenium as if you were inside chrome dev tools it does this by running a mitmproxy instance and proxying requests through it
mitmproxy is a debugging proxy that sits between a client (in this case selenium instance) and internet and allows you to intercept modify and inspect requests made by the client you cant use more than 2 proxies with selenium so in order to use your own proxy you need to use a regular selenium instance