【问题标题】:Using proxy with docker selenium python not working将代理与 docker selenium python 一起使用不起作用
【发布时间】:2018-11-21 18:37:47
【问题描述】:

我想在我的 docker selenium 容器中使用带有用户名和密码的代理。

我尝试了所有找到的解决方案,但都不起作用。我试过http代理:

capabilities = DesiredCapabilities.FIREFOX
        capabilities['proxy'] = {
            'proxyType': 'MANUAL',
            'httpProxy': f'{proxy.ip_address}:{proxy.port}',
            'sslProxy': 'ip:port',
            'socksUsername': proxy.login,
            'socksPassword': proxy.password
        }
browser = webdriver.Remote(command_executor='http://hub:4444/wd/hub',
                               desired_capabilities=capabilities,
                               browser_profile=profile)

selenium.common.exceptions.InvalidArgumentException:消息:无效 代理配置入口:socksPassword

尝试过 socks 代理:

proxy = Proxy({
                    'proxyType': ProxyType.MANUAL,
                    'socksProxy': f'{proxy.ip_address}:{proxy.port}',
                    'socksUsername': proxy.login,
                    'socksPassword': proxy.password
                })

browser = webdriver.Remote(command_executor='http://hub:4444/wd/hub',
                                   desired_capabilities=capabilities,
                                   browser_profile=profile,
                                   proxy=proxy)

消息:代理配置条目无效:socksPassword

我也尝试通过 Firefox 配置文件设置代理,例如 here,但它似乎不起作用,因为没有设置代理密码的选项。

代理正在工作,因为当我请求时:

proxy = 'socks5://username:password@ip:port' resp = requests.get('https://api.ipify.org?format=json',
                                    proxies=dict(http=proxy,
                                                 https=proxy)) print(resp.json())

返回正确的结果

【问题讨论】:

    标签: python selenium docker firefox proxy


    【解决方案1】:

    唯一的解决方案是使用没有密码的代理

    【讨论】:

      【解决方案2】:

      Python3.你需要 pip3 安装 geckodriver

      from selenium import webdriver
      from selenium.webdriver.common.by import By
      from selenium.webdriver.common.keys import Keys
      from selenium.webdriver.common.action_chains import ActionChains
      from selenium.webdriver.common.proxy import Proxy, ProxyType
      from selenium.webdriver.support.ui import WebDriverWait
      from selenium.webdriver.support import expected_conditions
      
      firefox_capabilities = webdriver.DesiredCapabilities.FIREFOX
      firefox_capabilities['marionette'] = True
      
      # https://free-proxy-list.net/
      proxy = '78.96.125.24:3128'    
      
      firefox_capabilities['proxy'] = {
          "proxyType": "MANUAL",
          "httpProxy": proxy,
          "ftpProxy": proxy,
          "sslProxy": proxy,
      }
      
      browser = webdriver.Firefox(capabilities=firefox_capabilities)
      browser.get('https://httpbin.org/ip')
      # browser.get('https://www.google.pl')
      

      【讨论】:

        猜你喜欢
        • 2017-07-09
        • 1970-01-01
        • 2013-09-09
        • 2020-06-23
        • 1970-01-01
        • 2022-08-15
        • 1970-01-01
        • 2014-04-23
        • 2013-06-15
        相关资源
        最近更新 更多