【问题标题】:Starting phantomJS from a script in a cronjob从 cronjob 中的脚本启动 phantomJS
【发布时间】:2014-08-04 20:22:00
【问题描述】:

我正在通过 cronjob 运行 python 脚本。我有一个虚拟环境,在 cronjob 中我通过这个虚拟环境运行它。当我正常运行脚本时,phantomJS 会正常启动,但是通过 cronjob 中的脚本运行它时会出现此错误。 cronjob 中缺少什么才能启动 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 <module>
    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

【问题讨论】:

    标签: python cron phantomjs crontab


    【解决方案1】:

    这对我有用:

    #!/bin/bash
    export DISPLAY=:0
    /usr/bin/phantomjs /home/pi/test.js
    

    【讨论】:

    • 为什么这个纯代码答案有效?需要解释
    【解决方案2】:

    作为已接受答案的替代方案,您可以在 crontab 的第一行添加以下行:

    PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs
    

    在运行 cron 任务之前指定 PhantomJS 的路径。

    【讨论】:

      【解决方案3】:

      由于 phantom 可能安装在 /usr/local/bin 中,您应该将该目录添加到您的 crontab 中的 PATH。以下应该可以解决问题:

      SHELL=/bin/sh
      PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-23
        • 2010-10-17
        相关资源
        最近更新 更多