Nicht in der Lage, Firefox von Selen in Python auf AWS Maschine aufrufen

Ich versuche, Selen aus Python zu benutzen, um einige Dynamik-Seiten mit Javascript zu kratzen. Allerdings kann ich Firefox nicht anrufen, nachdem ich die Anweisung von Selen auf der Pypi-Seite (http://pypi.python.org/pypi/selenium) verfolgt habe. Ich installierte Firefox auf AWS ubuntu 12.04. Die Fehlermeldung, die ich bekam, ist:

In [1]: from selenium import webdriver In [2]: br = webdriver.Firefox() --------------------------------------------------------------------------- WebDriverException Traceback (most recent call last) /home/ubuntu/<ipython-input-2-d6a5d754ea44> in <module>() ----> 1 br = webdriver.Firefox() /usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.pyc in __init__(self, firefox_profile, firefox_binary, timeout) 49 RemoteWebDriver.__init__(self, 50 command_executor=ExtensionConnection("127.0.0.1", self.profile, ---> 51 self.binary, timeout), 52 desired_capabilities=DesiredCapabilities.FIREFOX) 53 /usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/extension_connection.pyc in __init__(self, host, firefox_profile, firefox_binary, timeout) 45 self.profile.add_extension() 46 ---> 47 self.binary.launch_browser(self.profile) 48 _URL = "http://%s:%d/hub" % (HOST, PORT) 49 RemoteConnection.__init__( /usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.pyc in launch_browser(self, profile) 42 43 self._start_from_profile_path(self.profile.path) ---> 44 self._wait_until_connectable() 45 46 def kill(self): /usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.pyc in _wait_until_connectable(self) 79 raise WebDriverException("The browser appears to have exited " 80 "before we could connect. The output was: %s" % ---> 81 self._get_firefox_output()) 82 if count == 30: 83 self.kill() WebDriverException: Message: 'The browser appears to have exited before we could connect. The output was: Error: no display specified\n' 

Ich habe im Web gesucht und festgestellt, dass dieses Problem mit anderen Leuten passiert ist (https://groups.google.com/forum/?fromgroups=#!topic/selenium-users/21sJrOJULZY). Aber ich verstehe die Lösung nicht, wenn es so ist.

Kann mir jemand bitte helfen? Vielen Dank!

2 Solutions collect form web for “Nicht in der Lage, Firefox von Selen in Python auf AWS Maschine aufrufen”

Das Problem ist, dass Firefox eine Anzeige benötigt. Ich habe pyvirtualdisplay in meinem Beispiel verwendet, um ein Display zu simulieren. Die Lösung ist:

 from pyvirtualdisplay import Display from selenium import webdriver display = Display(visible=0, size=(1024, 768)) display.start() driver= webdriver.Firefox() driver.get("http://www.somewebsite.com/") <---some code---> #driver.close() # Close the current window. driver.quit() # Quit the driver and close every associated window. display.stop() 

Bitte beachten Sie, dass pyvirtualdisplay eine der folgenden Backends erfordert: Xvfb, Xephyr, Xvnc.

Dies sollte Ihr Problem lösen.

Ich hatte auch das gleiche Problem. Ich war auf Firefox 47 und Selen 2.53. Also, was ich tat, wurde herabgestuft Firefox auf 45. Das funktionierte.

1) Entfernen Sie Firefox 47 zuerst:

sudo apt-get purge firefox

2) Auf verfügbare Versionen prüfen:

apt-cache show firefox | grep Version

Es zeigt die verfügbaren Firefox-Versionen wie:

Version: 47.0+build3-0ubuntu0.16.04.1

Version: 45.0.2+build1-0ubuntu1

3) Sagen Sie welchen Build zum Download

sudo apt-get install firefox=45.0.2+build1-0ubuntu1

4) Als nächstes musst du noch nicht auf die neuere Version upgraden.

sudo apt-mark hold firefox

5) Wenn du später ein Upgrade machen willst

sudo apt-mark unhold firefox sudo apt-get upgrade

Hoffe das hilft.

  • Abrufen einer Teilmenge von href's aus findall () in BeautifulSoup
  • Kann nicht mit den Anfragen vorübergehen
  • Kratzen einer Website mit Python und Drucken auf einen Dateikonflikt
  • Wie benutzt man Python-Anfragen und Event-Hooks, um einen Web-Crawler mit einer Callback-Funktion zu schreiben?
  • Wie bekomme ich ein JS umgeleitetes pdf, das von einer Webseite verlinkt wird
  • Fokussierung auf spezifische Ergebnisse beim Kratzen Twitter mit Python und schöne Suppe 4?
  • Python verwenden, um verschachtelte Divs und Spannen in Twitter zu kratzen?
  • Python BeautifulSoup findAll von "class" Attribut
  • Artikel kratzt mit beautifulsuppe: kratzt alle <p> tags
  • Fehler in Regex Formulierung für Web-Scraping in Python
  • Speichern Daten, die eine Ausgabe von Python-Programm in Excel-Datei ist
  • Python ist die beste Programmiersprache der Welt.