【问题标题】:Setting a proxy using python, selenium, and phantomJS使用 python、selenium 和 phantomJS 设置代理
【发布时间】:2016-09-03 18:51:28
【问题描述】:

我已经尝试了 Alex 在下一页上发布的解决方案,但我不断收到此错误。 How do I set a proxy for phantomjs/ghostdriver in python webdriver?

我的 PATH 中有 phantomJS。

File "C:\Users\sri19\Desktop\Gui OSRS\testphantomproxy.py", line 21, in <module>
  driver = webdriver.PhantomJS(service_args=phan_args, desired_capabilities=dcap)
File "C:\Python27\Lib\site-packages\selenium\webdriver\phantomjs\webdriver.py", line 52, in __init__
  self.service.start()
File "C:\Python27\Lib\site-packages\selenium\webdriver\common\service.py", line 86, in start
  self.assert_process_still_running()
File "C:\Python27\Lib\site-packages\selenium\webdriver\common\service.py", line 99, in assert_process_still_running
  % (self.path, return_code)

selenium.common.exceptions.WebDriverException: Message: Service phantomjs unexpectedly exited. Status code was: -1

这是我当前的测试脚本

from selenium import webdriver
from selenium.webdriver.common.proxy import *
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import StaleElementReferenceException, TimeoutException
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.common.keys import Keys
import sys

singleproxy = "88.157.149.250:8080"
proxytype = "http"

user_agent = ("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) " + "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36")

phan_args = ['--proxy=88.157.149.250:8080', 'proxy-type=http']
print "step 1"
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = user_agent
print "step 2"
driver = webdriver.PhantomJS(service_args=phan_args, desired_capabilities=dcap)
driver.get("https://www.whatismyip.com/")
print "step 3"
print driver.current_url

htmlpage = driver.page_source
print htmlpage.encode(sys.stdout.encoding, errors='replace')

谁能帮我理解为什么我会收到这个错误?当我将此代理应用于 chromedriver(通过不同的方法)时,它起作用了。所以它不能是代理。

【问题讨论】:

    标签: python selenium proxy phantomjs


    【解决方案1】:

    小崽子...犯了一个小错误。

    以下行 phan_args = ['--proxy=88.157.149.250:8080', 'proxy-type=http'] 应该 phan_args = ['--proxy=88.157.149.250:8080', '--proxy-type=http']

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-02
      • 1970-01-01
      • 2016-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多