2016-11-14 1 views
1

öffnet Ich habe einen BeautifulSoup & Selenium-Skript in Python 2.7 läuft, die perfekt von Terminal funktioniert, aber nicht als cron-Job auszuführen.Chrome WebDriver von cron nicht

bekomme ich folgende Zurückverfolgungs:

Traceback (most recent call last): 
File "sel_hourly.py", line 50, in <module> 
with closing(Chrome(chrome_options=options)) as driver: 
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/chrome/webdriver.py", line 69, in __init__ 
desired_capabilities=desired_capabilities) 
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 92, in __init__ 
self.start_session(desired_capabilities, browser_profile) 
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 179, in start_session 
response = self.execute(Command.NEW_SESSION, capabilities) 
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 236, in execute 
self.error_handler.check_response(response) 
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 192, in check_response 
raise exception_class(message, screen, stacktrace) 
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally 
(Driver info: chromedriver=2.25.426924 (649f9b868f6783ec9de71c123212b908bf3b232e),platform=Linux 4.8.0-22-generic x86_64) 

Linie 50, wo es das Scheitern beginnt, ist die mit Anweisung in der folgenden:

options = webdriver.ChromeOptions() 
options.add_argument("--start-maximized") 
with closing(Chrome(chrome_options=options)) as driver: 
    driver.get(url) 
    # wait for the page to load 
    time.sleep(1) 
    # store it to string variable 
    page_source = driver.page_source 
    soup = bs4.BeautifulSoup(page_source,'lxml') 

Könnte jemand über die Frage beraten.

+0

Aber es funktioniert für mich, wenn ich es unter crontab -e laufen, so muss ich es auf meinem System gegeben haben, aber nicht auf meine Kunden. Wie stelle ich es ein? – HenryM

+0

@ e4c5 Es tut mir leid, aber ich verstehe nicht, warum das bedeutet, dass es auf meinem System funktioniert, wenn ich es eingegeben habe, aber es läuft nicht auf dem System meines Kunden. Mir fehlt eindeutig das Verständnis von Cron, aber es funktioniert auf meinem Server, wenn ich den Job mit crontab -e eintrage. Es dann, wenn – HenryM

+0

Es erstellt die Traceback-Fehler oben gezeigt, während auf meinem System das Skript läuft und seine Aufgaben – HenryM

Antwort

0

Meine Lösung war am Ende zu Firefox wechseln und pyvirtualdisplay zu implementieren, um die Anzeige zu imitieren.

Verwandte Themen