在python

时间:2016-06-20 19:49:40

标签: python selenium phantomjs tor

我试图将phantomJS与硒和Tor一起使用。我有以下内容:

from selenium import webdriver
service_args = [
        '--proxy=127.0.0.1:9050',
        ' --proxy-type=socks5',
    ]
driver = webdriver.PhantomJS(service_args = service_args)

每次尝试连接时,都会收到以下错误消息:

WebDriverException                        Traceback (most recent call last)
<ipython-input-2-98e27eb2ae26> in <module>()
  4             ' --proxy-type=socks5',
  5     ]
----> 6 driver = webdriver.PhantomJS(service_args = service_args)

/usr/local/lib/python2.7/dist-packages/selenium/webdriver/phantomjs    /webdriver.pyc in __init__(self, executable_path, port, desired_capabilities,    service_args, service_log_path)
 49         self.service = Service(executable_path, port=port,
 50             service_args=service_args, log_path=service_log_path)
---> 51         self.service.start()
 52 
 53         try:

/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/service.pyc in start(self)
 83         count = 0
 84         while True:
---> 85             self.assert_process_still_running()
 86             if self.is_connectable():
 87                 break

/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/service.pyc in assert_process_still_running(self)
 96             raise WebDriverException(
 97                 'Service %s unexpectedly exited. Status code was: %s'
---> 98                 % (self.path, return_code)
 99             )
100 

WebDriverException: Message: Service phantomjs unexpectedly exited. Status code was: 255

PhantomJS和Selenium可以正常使用Tor参数。任何帮助实现这项工作将不胜感激!

2 个答案:

答案 0 :(得分:3)

这是一个旧的,但我来到这里,因为我搜索了你想要做的事情。

当我执行你的代码时,我的行为完全相同。

只需删除第二个参数的空格('--proxy-type = socks5'),您的代码就可以正常运行。

因此,

    from selenium import webdriver
    service_args = [
        '--proxy=127.0.0.1:9050',
        '--proxy-type=socks5',
    ]
    driver = webdriver.PhantomJS(service_args = service_args)

答案 1 :(得分:0)

尝试添加您确切的phantomjs路径?

driver = webdriver.PhantomJS(executable_path=<your_phantomjs_path>, service_args = service_args)