在 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同时拥有两个不同的用户代理?
无法在 Windows 7 中使用 Python 启动 PhantomJS