【问题标题】:Set Proxy using PhantomJS in Python在 Python 中使用 PhantomJS 设置代理
【发布时间】:2017-07-02 03:54:05
【问题描述】:

所以我已经使用以下代码成功设置了代理,并且一切正常。我想将代理自动导入为字符串并将该字符串添加到下面的 service_args,但我不确定如何执行此操作。

当前工作代码:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

proxyIP = ('11.22.33.444')
proxyPort = ('5555')
proxy = ('{}:{}'.format(proxyIP, proxyPort))

service_args = [
    '--proxy=11.22.33.44:5555',
    '--proxy-type=http',
    '--ignore-ssl-errors=true',
]

browser = webdriver.PhantomJS(service_args=service_args)

现在,我希望能够将“代理”变量传递到它显示“--proxy=11.22.33.44:5555”的位置。我尝试了几种不同的方法,但没有运气。有没有人可以解决这个问题?

谢谢!

【问题讨论】:

    标签: python python-3.x selenium proxy phantomjs


    【解决方案1】:

    你可以在没有代理变量的情况下声明你的service_args,然后再附加它:

    service_args = [
        '--proxy-type=http',
        '--ignore-ssl-errors=true',
    ]
    service_args.append(proxy)
    

    代理需要是一个字符串,因为service_args 是一个字符串列表。

    【讨论】:

      【解决方案2】:

      谢谢,您的解决方案奏效了。我在代理中确实有一个数字错误,这就是我遇到麻烦的原因。我最终只是做了:

      service_args = [
      '--proxy={}:{}'.format(proxyIP, proxyPort),
      '--proxy-type=http',
      '--ignore-ssl-errors=true',
      ]
      

      【讨论】:

      • 同样有效!很高兴您也发布了您的解决方案! :)
      【解决方案3】:

      以上方法都不适合我,我正在使用带有 selenium phantomJs python 的 proxymesh 代理,下面的代码 sn-p 效果很好。

      service_args=['--proxy=http://username:password@host:port',
                    '--proxy-type=http',
                    '--proxy-auth=username:password']
      
      driver = webdriver.PhantomJS(service_args=service_args) 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-19
        • 2015-04-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多