Estoy ejecutando un script de python a través de un cronjob. Tengo un entorno virtual y en el cronjob lo estoy ejecutando a través de este entorno virtual. Cuando ejecuto el script, normalmente phantomJS comienza como debería, pero ejecutándolo a través de un script en un cronjob recibo este error. ¿Qué falta en el cronjob para poder iniciar phantomjs?
Message: 'Unable to start phantomjs with ghostdriver.' ; Screenshot: available via screen Traceback (most recent call last): File "/home/scraper/superfish-extension/chrome_3day.py", line 96, in main() File "/home/scraper/superfish-extension/chrome_3day.py", line 73, in main browser = use_phantomjs() File "/home/scraper/superfish-extension/chrome.py", line 81, in use_phantomjs browser = webdriver.PhantomJS() File "/home/scraper/.virtualenvs/superfish/lib/python2.6/site-packages/selenium/webdriver/phantomjs/webdriver.py", line 50, in __init__ self.service.start() File "/home/scraper/.virtualenvs/superfish/lib/python2.6/site-packages/selenium/webdriver/phantomjs/service.py", line 69, in start raise WebDriverException("Unable to start phantomjs with ghostdriver.", e) WebDriverException: Message: 'Unable to start phantomjs with ghostdriver.' ; Screenshot: available via screen
Como es probable que phantom se instale en /usr/local/bin
, debe agregar ese directorio a PATH
en su crontab. Lo siguiente debería hacer el truco:
SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Como alternativa a la respuesta aceptada, puede agregar la siguiente línea en la primera línea de crontab:
PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs
que especifica la ruta de PhantomJS antes de ejecutar las tareas cron.
que hizo el truco para mí:
#!/bin/bash export DISPLAY=:0 /usr/bin/phantomjs /home/pi/test.js