我尝试使用PIA(https://www.privateinternetaccess.com)提供的SOCKS5代理。我在他们的网站上为SOCKS5生成了用户/通行证,但我无法使用这些信息,因为我不知道在哪里放置它。我尝试使用ChromeOptions
,但它无效。
def create_browser(self, proxy):
"""
proxy = "xGeneratedUser:GeneratedPass@proxy-nl.privateinternetaccess.com:1080"
"""
chrome_options = webdriver.ChromeOptions()
if proxy:
chrome_options.add_argument("--proxy-server=socks5://" + proxy)
try:
self.browser = webdriver.Chrome('./chromedriver', chrome_options=chrome_options)
self.browser.set_window_size(800, 600)
except Exception as error:
return False
答案 0 :(得分:0)
<强> selenium.webdriver.chrome.webdriver 强>
WebDriver(executable_path='chromedriver', port=0, chrome_options=None, service_args=None, desired_capabilities=None, service_log_path=None)
Args:
executable_path
- 可执行文件的路径。如果使用默认值
假设可执行文件位于$ PATH port
- 您希望服务运行的端口,如果保留为0,则为免费
将找到港口。desired_capabilities
:具有非浏览器特定的字典对象
仅限功能,例如“proxy”或“loggingPref”。chrome_options
:这需要ChromeOptions的一个实例您可以按照以下URL中的表格为desired_capabilities编写代理字典对象。 DesiredCapabilities - Proxy JSON Object
答案 1 :(得分:0)
在Chrome本身将使用的.bashrc
集proxy
中: -
export http_proxy="xGeneratedUser:GeneratedPass@proxy-nl.privateinternetaccess.com:1080"
export https_proxy="xGeneratedUser:GeneratedPass@proxy-nl.privateinternetaccess.com:1080"
否则您可以尝试使用此工具: - proxy login automator
set http_proxy=http://your_proxy:your_port
set http_proxy=http://username:password@your_proxy:your_port
set https_proxy=https://your_proxy:your_port
set https_proxy=https://username:password@your_proxy:your_port
答案 2 :(得分:0)
万一有人绊倒了......
我正在尝试使用selenium连接socks5代理并且认为问题是代理需要用户/通过身份验证,并且因为我使用了chromedriver它没有用,因为chrome本身不支持这个。
尝试连接不需要auth的socks5代理或找到支持此功能的驱动程序 - 不知道这可能是哪个/那个。
答案 3 :(得分:0)
我也在这里难住。 我也想在Selenium的Chrome网络驱动程序中使用身份验证代理。 我尝试使用httpProxy或PAC,但不能使用用户名和密码。
然后我看到了socksUsername
和socksPassword
,但它仍然没有用。
因为错误:
selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: cannot parse capability: proxy
from invalid argument: Specifying 'socksProxy' requires an integer for 'socksVersion'
(Driver info: chromedriver=73.0.3683.20 (8e2b610813e167eee3619ac4ce6e42e3ec622017),platform=Mac OS X 10.14.3 x86_64)
我发现chrome code说需要使用socksProxy
键,但是当前的硒不支持socksProxy see selenium code。
所以我不得不选择其他方式:
export http_proxy=http://username@pass:host:port
在PATH中设置http_proxy 更新: 最后,我使用pproxy make作为本地的代理重定向器。
# pproxy -r ${HTTP_PROXY}\#${PROXY_AUTH} -l http://:8080 -v
# 1.2.3.4:1234 is remote address:port, username and password is used auth for remote proxy.
pproxy -r http://1.2.3.4:1234\#username:password -l http://:8080 -v
因此,现在您无需身份验证即可连接到本地主机:8080。
答案 4 :(得分:-1)
是的,试试这个:
var client = require(&#39; webdriverio&#39;)。remote({ 主持人:&#39;用户名:password@127.0.0.1' 港口:1234, desiredCapabilities:{ browserName:&#39; chrome&#39; } })