如何让PhantomJS通过代理列表连接?

时间:2017-09-26 21:59:55

标签: python selenium proxy phantomjs

我现在有一个宠物编程项目正在进行中,我现在处于死胡同,我已经删除了一个代理列表站点并且有一个工作列表以正确的格式输出,但是当我使用phantomJS内联运行时我每次都会收到一个错误。

此代码在设置

时抛出错误
  

driver = webdriver.PhantomJS(service_args = [serarg2,])

但是这个很好地连接到我自己的代理

  

driver = webdriver.PhantomJS(service_args = ['--proxy = 192.168.1.231:3128',' - proxy-type = http',])

Segarg2定义如下(请善意我是python的新手,而且很乱)

FIX4 = "'"
FIXOR = random.choice(address)
FIXOR2 = FIXOR + FIX4
FIXOR3 = ','
print FIXOR2
LEGO = "'--proxy="
SPIDER = ", '--proxy-type=http'"
#USERAGENT STRING
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = (random.choice(uas))

serarg2 = LEGO + FIXOR + FIX4 + SPIDER

当输出时,虽然使用

进行测试,但它会正确返回
  

print('TEST SERARG2')   print serarg2

  TEST SERARG2
  '--proxy=193.178.187.136:53281', '--proxy-type=http'

但每次使用list proxys

时我都会遇到此错误
  

driver = webdriver.PhantomJS(service_args = [serarg2,])     在 init 中输入文件“/usr/local/lib/python2.7/dist-packages/selenium/webdriver/phantomjs/webdriver.py”,第52行       self.service.start()     文件“/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/service.py”,第96行,开头       self.assert_process_still_running()     在assert_process_still_running中输入文件“/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/service.py”,第109行       %(self.path,return_code)   selenium.common.exceptions.WebDriverException:消息:服务phantomjs意外退出。状态代码为:255

请帮帮我,甚至可以做到吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

您的问题如下。有效的是

driver = webdriver.PhantomJS(service_args = ['--proxy=192.168.1.231:3128','--proxy-type=http',])

您从代码生成的内容是

driver = webdriver.PhantomJS(service_args = ["'--proxy=192.168.1.231:3128', '--proxy-type=http'",])

因此,不是生成数组元素而是生成带字符串的单个元素。您的代码应低于

FIXOR = random.choice(address)
LEGO = "--proxy="
SPIDER = "--proxy-type=http"
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = (random.choice(uas))

serarg2 = [LEGO + FIXOR, SPIDER]

driver = webdriver.PhantomJS(service_args = serarg2)

PS:请求您使用更好的变量命名而不是使用完整大写。