सेलेनियम और फैंटॉमजेएस त्रुटि: "GhostDriver से कनेक्ट नहीं हो सकता"

मैं एक वेबसाइट में खोज शब्द इनपुट करने के लिए सेलेनियम और फैंटॉमजेएस चला रहा हूं और प्रत्येक खोज शब्द के लिए हिट की संख्या पुनर्प्राप्त कर रहा हूं। मुझे यह 130,000+ बार करना है, इसलिए कोड एक दिन के लिए अच्छी तरह से चल रहा है जब तक कि अचानक प्रोग्राम को निम्न त्रुटि से तोड़ दिया न जाए:

Traceback (most recent call last):
  File "CBBPlyNwsScrape.py", line 82, in 
     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' 

मैं इसे मैक ओएसएक्स और पायथन 2.7.3 पर चला रहा हूं। मेरे पास सेलेनियम और फैंटॉमजेएस के लेटेस संस्करण स्थापित हैं। क्या कोई मुझे बता सकता है कि क्या हो रहा है और क्यों 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
     }
  ]
}

धन्यवाद

0

2 उत्तर

मुझे भी यही समस्या आ रही थी। मुझे नहीं पता कि कार्यक्रम को phantomJS वेबड्राइवर को कॉल करने में परेशानी क्यों है, लेकिन इसका उत्तर एक सरल अपवाद वेबड्राइवर अपवाद लिखना है। इस निम्नलिखित कोड ने मेरे लिए चाल की है

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
0
जोड़ा
आपको डुप्लिकेट करने के बजाए फ़ंक्शन में उस सामान्य कोड को लपेटने पर विचार करना चाहिए।
जोड़ा लेखक Ponkadoodle, स्रोत

नवीनतम प्रेत जेएस स्थापित करने से इस त्रुटि को ठीक किया गया, यह डिफ़ॉल्ट ubuntu 12.04 phantomjs destro के साथ हो रहा था

0
जोड़ा
उबंटू 12.04 में, मैंने phantomjs को संस्करण 1.9.2 में अद्यतन किया और समस्या को ठीक किया।
जोड़ा लेखक JuanPablo, स्रोत