Ho impostato un semplice script di webscraping in Python con Selenium e PhantomJS. Ho circa 200 URL in totale da analizzare. Lo script funziona bene dapprima poi dopo circa 20-30 URL (può essere più o meno come sembra casuale quando fallisce e non è collegato ad alcun particolare URL) ottengo il seguente errore in python:Il selenio non può connettersi a GhostDriver (ma solo qualche volta)
selenium.common.exceptions.WebDriverException: Message: 'Can not connect to GhostDriver'
e il mio ghostdriver.log:
PhantomJS is launching GhostDriver...
[ERROR - 2014-07-04T17:27:37.519Z] GhostDriver - main.fail - {"message":"Could not start Ghost Driver","line":82,"sourceId":140692115795456,"sourceURL":":/ghostdriver/main.js","stack":"Error: Could not start Ghost Driver\n at :/ghostdriver/main.js:82","stackArray":[{"sourceURL":":/ghostdriver/main.js","line":82}]}
ho cercato e la maggior parte delle domande sul SO sembra di essere che non possono persino eseguire un singolo URL. L'unica altra domanda che ho trovato dove si verifica l'errore nel mezzo dello script è this one e la risposta è l'aggiornamento di phantomjs all'ultima versione, cosa che ho fatto. L'altra risposta dice semplicemente di provare di nuovo quell'URL e non sembra una buona soluzione dato che l'URL potrebbe semplicemente fallire di nuovo.
Sono in esecuzione phantomjs versione 1.9.7 e selenio versione 2.42.1 su Linux Mint 17 su Python 2.7.6
for url in ['example.com/1/', 'example.com/2/', 'example.com/3/', .. , ..]:
user_agent = 'Chrome'
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap['phantomjs.page.settings.userAgent'] = user_agent
driver = webdriver.PhantomJS(executable_path='/usr/bin/phantomjs', desired_capabilities=dcap)
driver.get(url)
cos'è 'row.url'? –
@PadraicCunningham: Typo. Fisso. –
come hai installato phantomjs? –