如何为Selenium Webdriver设置socks5代理?蟒蛇

时间:2018-10-31 11:26:02

标签: python selenium selenium-webdriver proxy webdriver

我真的无法为selenium中的chrome webdriver设置socks5代理(也是http)。 我尝试了许多不同的方法...但是我认为我做不好。

示例1:

self.options.add_argument('--proxy-server=http://'+proxy)

示例2:

webdriver.DesiredCapabilities.CHROME['proxy'] = {
        "socksProxy": proxy,
        "ftpProxy": proxy,
        "sslProxy": proxy,
        "noProxy": None,
        "proxyType": "MANUAL",
        "class": "org.openqa.selenium.Proxy",
        "autodetect": False
    }

请完整描述在Selenium上为Python和Chrome Webdriver设置socks5代理的工作示例,以及代理字符串格式的示例(也许我在这里做错了...)。

PS我遇到两个问题:

  1. 只需保留旧的IP地址。
  2. Chrome网络驱动程序中没有互联网连接。

3 个答案:

答案 0 :(得分:1)

对于 FireFox的geckodriver ,如果您只想设置 socks5主机/ socks5代理:-

form selenium import webdriver

profile = webdriver.FirefoxProfile()

# Socks5 Host SetUp:-
myProxy = "198.199.101.152:8388"
ip, port = myProxy.split(':')
profile.set_preference('network.proxy.type', 1)
profile.set_preference('network.proxy.socks', ip)
profile.set_preference('network.proxy.socks_port', int(port))

driver = webdriver.Firefox(firefox_profile=profile)

答案 1 :(得分:0)

Chrome浏览器不允许使用auth代理。我不敢肯定,但是在阅读了这么多信息后,我认为是这样。...只有一种方法对我有用-在不使用auth的情况下使用proxy socks5登录名和密码。

 options = webdriver.ChromeOptions()
 proxy = '12.12.421.125:1949'   
 options.add_argument('--proxy-server=socks5://' + proxy)
 driver = webdriver.Chrome(options=self.options)

答案 2 :(得分:-1)

这是我用来使用用户名/密码身份验证连接到 Socks5 服务器的代码。

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

capabilities = dict(DesiredCapabilities.CHROME)
capabilities['proxy'] = {
    'proxyType': 'MANUAL',
    'socksProxy': '<Your_IP>:<Your_Port>',
    'socksVersion': 5,
    'ftpProxy': '<Your_IP>:<Your_Port>',
    'noProxy': 'localhost,127.0.0.1',
    'class': "org.openqa.selenium.Proxy",
    'autodetect': False
}

capabilities['proxy']['socksUsername'] = '<username>'
capabilities['proxy']['socksPassword'] = '<password>'

driver = Chrome(ChromeDriverManager().install(), desired_capabilities=capabilities)