Ошибка Selenium и PhantomJS: "Не удается подключиться к GhostDriver"

Я использую Selenium и PhantomJS для ввода поисковых терминов на веб-сайт и получения количества посещений для каждого поискового запроса. Я должен сделать это более 130000 раз, поэтому код работал хорошо в течение дня, пока вдруг программа не сломалась со следующей ошибкой:

Traceback (most recent call last):
  File "CBBPlyNwsScrape.py", line 82, in <module>
     browser = webdriver.PhantomJS()
  File "/Library/Python/2.7/site-packages/selenium/webdriver/phantomjs/webdriver.py", line 50, in __init__
     self.service.start()
  File "/Library/Python/2.7/site-packages/selenium/webdriver/phantomjs/service.py", line 69, in start
     raise WebDriverException("Can not connect to GhostDriver")
selenium.common.exceptions.WebDriverException: Message: 'Can not connect to GhostDriver' 

Я запускаю это на Mac OSX и Python 2.7.3. У меня установлены последние версии Selenium и PhantomJS. Может кто-нибудь сказать мне, что происходит и почему GhostDriver так долго работал нормально и внезапно остановился?

в ghostdriver.log файл, это все, что он содержит:

PhantomJS is launching GhostDriver...
[ERROR - 2013-12-01T05:14:34.491Z] GhostDriver - Main - Could not start Ghost Driver => {
  "message": "Could not start Ghost Driver",
  "line": 82,
  "sourceId": 4445044288,
  "sourceURL": ":/ghostdriver/main.js",
  "stack": "Error: Could not start Ghost Driver\n    at :/ghostdriver/main.js:82",
  "stackArray": [
     {
        "sourceURL": ":/ghostdriver/main.js",
        "line": 82
     }
  ]
}

Спасибо

2 ответа

Установка последней версии Phantom JS исправила эту ошибку, это происходило со стандартным Ubuntu 12.04 Phantom js Destro

У меня была такая же проблема. Я не знаю, почему у программы возникают проблемы с вызовом веб-драйвера phantomJS, но ответ - написать простое исключение WebDriverException. Следующий код помог мне

from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException, WebDriverException
import unittest, time, re, urllib2

f = open("mother.txt","r") #opens file with name of "test.txt"
l = "1"
m = "2"
n = "3"
aTuple = ( l, m, n ) # create tuple
e = int(0)


for line in f:          
    e += 1
    try:
        h = str(e)
        j = line
        g = open("yes4/" + h + ".txt","w") #opens file with name of "test.txt"
        for item in aTuple:
            driver = webdriver.PhantomJS('phantomjs')
            base_url = j + item
            verificationErrors = []
            accept_next_alert = True
            driver.get(base_url)
            elem=driver.find_element_by_id("yelp_main_body")
            source_code=elem.get_attribute("outerHTML").encode('utf-8').strip()
            g.write(source_code)
            driver.quit()
    except WebDriverException:
        print "e"       
        h = str(e)
        j = line
        g = open("yes4/" + h + ".txt","w") #opens file with name of "test.txt"
        for item in aTuple:
            driver = webdriver.PhantomJS('phantomjs')
            base_url = j + item
            verificationErrors = []
            accept_next_alert = True
            driver.get(base_url)
            elem=driver.find_element_by_id("yelp_main_body")
            source_code=elem.get_attribute("outerHTML").encode('utf-8').strip()
            g.write(source_code)
            driver.quit()
    else:
        print h
Другие вопросы по тегам