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.

  • Wikipedia Data Scraping mit Python
  • Holen Sie sich alle Links mit BeautifulSoup von einer einzigen Website-Website ('Load More' Feature)
  • Webseitenwerte fehlen beim Scraping von Daten mit BeautifulSoup python 3.6
  • Schaben von Daten aus einem dynamischen Graphen mit python + beautifulSoup4
  • Nach anfrage mit python auf asp.net Seite
  • Screen Crash Beratung: Interaktive Grafik
  • HTML-Scraping mit lxml und Anfragen gibt einen Unicode-Fehler
  • Abrufen von Daten mit Python & lxml
  • Wie wähle ich einige URLs mit BeautifulSoup?
  • Pass Scrapy Spider eine Liste von URLs zu crawlen über. Txt-Datei
  • Scrapy laufen von Python
  • Python ist die beste Programmiersprache der Welt.