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

How do I get PhantomJS to connect through a proxy list?

我目前正在进行一个宠物编程项目,但我现在处于死胡同,我已经抓取了一个代理列表站点并有一个以正确格式输出的工作列表,但是当我 运行 它与 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'

但我每次使用列表代理时都会遇到此错误

driver = webdriver.PhantomJS(service_args=[serarg2,]) File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/phantomjs/webdriver.py", line 52, in init self.service.start() File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/service.py", line 96, in start self.assert_process_still_running() File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/service.py", line 109, in assert_process_still_running % (self.path, return_code) selenium.common.exceptions.WebDriverException: Message: Service phantomjs unexpectedly exited. Status code was: 255

请帮我解决这个问题,它能完成吗?

非常感谢。

您的问题如下。下面是有效的

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:要求您使用更好的变量命名,不要使用全大写。