在 Python 中使用 PhantomJS 设置代理

Posted

技术标签:

【中文标题】在 Python 中使用 PhantomJS 设置代理【英文标题】:Set Proxy using PhantomJS in Python 【发布时间】: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”的位置。我尝试了几种不同的方法,但没有运气。有没有人可以解决这个问题?

谢谢!

【问题讨论】:

【参考方案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) 

【讨论】:

以上是关于在 Python 中使用 PhantomJS 设置代理的主要内容,如果未能解决你的问题,请参考以下文章

为什么我在python中使用PhantomJS同时拥有两个不同的用户代理?

python定时杀进程

无法在 Windows 7 中使用 Python 启动 PhantomJS

使用 phantomjs 设置 cron 作业

将 PhantomJS 与 Selenium Webdriver 和 Python 一起使用

Mac+Python环境使用phantomjs时报在PATH中找不到