Wie PhantomJS installieren für die Verwendung mit Python Selenium auf dem Raspberry Pi?
Ich soll zum ausführen eines Python-Skript mit Selenium WebDriver
mit PhantomJS
als headless-browser auf meinem Raspberry Pi läuft Raspbian.
Ursprünglich schrieb ich das Skript in OS X, wo es gut funktioniert. Aber in versuchen, damit es funktioniert auf der Himbeere, ich habe Probleme.
Wenn Sie versuchen, um das Skript auszuführen, bekomme ich diese Fehlermeldung:
raise WebDriverException("Can not connect to the Service %s" % self.path)
selenium.common.exceptions.WebDriverException: Message: Can not connect to the Service /usr/bin/phantomjs
Kurze version des Skripts:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
user_agent = ("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) " +
"AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36")
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = user_agent
serv_args = ["--ignore-ssl-errors=false", "--ssl-protocol=tlsv1",
"--disk-cache=false"]
driver = webdriver.PhantomJS(executable_path="/usr/bin/phantomjs",
desired_capabilities = dcap, service_arguments = serv_args, port=65000)
Habe ich gesehen, andere Menschen haben Probleme, ähnlich mine – mit unterschiedlichen Lösungen – die meisten scheinen zu beinhalten, Gebäude PhantomJS selbst, oder ein Klon, und installieren Sie einen Github-branch angepasst für das Raspberry (das ist jetzt out-of-sync mit dem Haupt-PhantomJS-Projekt).
Fragen
- Weiß jemand, wie das problem zu beheben – und zwar, was das problem wirklich ist über?
- Wenn die Lösung beinhaltet die Installation der Binärdateien manuell zu
/usr/local/bin
oder so, wie soll ich das tun? Die Binärdateien verfügbar auf der PhantomJS Webseite ist fürlinux-x86
undlinux-i686
, so dass ich annehme, dass Sie nicht arbeiten auf einem Raspberry Pi 2 B ARM Cortex A-7 Prozessor. - Habe ich auch schon versucht zu bauen PhantomJS mich nach diesen Anweisungen, aber der Prozess erstarrte auf halbem Weg durch. Der Raspberry auch nicht, erfüllen Sie die empfohlenen hardware-Anforderungen für Gebäude.
Hintergrund info
- Ich bin mit
Python 2.7.9
- Habe ich eine
virtualenv
und installiert die Python-Module in es; z.B.pip install selenium
, und versuchen, führen Sie das Skript hier - Ich installiert haben die neueste version von PhantomJS über
sudo apt-get install phantomjs
- Ich habe meine Behinderte
ufw
firewall während des Tests
- geben Sie
locate phantomjs
einmal finden Sie es verschieben Sie es an/usr/bin
? Sie müssen möglicherweise ausführensudo updatedb
vor der Ausführunglocate
... und Sie können " apt-get install was auch immer Paket Teil ... - Suchen gibt folgende Ausgabe: pastebin.com/BBG2wgF0
- hmmm na dang ... sorry keine Ahnung :/
- haben Sie versucht, dieses stackoverflow.com/questions/18916123/... (im Grunde Neuinstallation von Knoten und phantomjs)
- Vielen Dank; ich habe versucht
apt-get nodejs
undapt-get nodejs-legacy
, und führen Sie dann die .py-Skript, aber das gleiche problem weiterhin besteht. - was bedeutet
which phantomjs
Ausgang? which phantomjs
gibt/usr/bin/phantomjs
, sowohl ohne als auch mitvirtualenv
.- Benutzt du raspbian?
- Ja, Raspbian aktualisiert, um die neuesten
apt-get update
. (Aktualisiert, Frage mit dieser info). - Ich eben geschossen meinem pi, ich werde sehen, ob ich bekommen kann es arbeiten.
- wie genau hast du phantomjs installieren?
apt-get install phantomjs
- Die einzige option die ich hatte, war
python-pyphantomjs
, vielleicht brauche ich zum aktivieren einer anderen Quelle, können Sie die Ausgabe vonapt-cache show phantomjs
? - Auch das, was Sie bekommen, wenn Sie Sie ausführen
phantomjs
von bash apt-cache show phantomjs
: pastebin.com/6NFsstKAphantomjs
von der bash: pastebin.com/iQxa7R78- Sind Sie mit dieser über ssh auf den pi oder einen Bildschirm angeschlossen?
- Nur SSH!
- Die version 1.4 erfordert x11 oder vfvb, ich bin eigentlich immer ein Fehler in Bezug nicht in der Lage, eine Verbindung zu X-server, ich bin zurzeit der Kompilierung von der Quelle, hatte ein paar Probleme so weit, aber wieder kompilieren, wieder also werde ich sehen, wenn ich es sortiert ist, dauert es ein paar Stunden auf dem pi, so wird Sie wissen lassen, morgen.
- ich habe gelesen, dass in letzter Zeit Leute mit mehr kopflos chrome und firefox stackoverflow.com/questions/49172172/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok fange ich mit der Lösung, es ist eine version für arm-hier phantomjs-linux-armv6l, auf dem pi ausführen der folgenden Befehle:
Fügte ich hinzu:
So phantomjs werden auf Ihrem Weg.
Nun wir das getan haben, mal zu testen:
Aus der faq. Beginnend mit PhantomJS 1.5, es ist rein kopflose und es gibt keine Notwendigkeit ausführen X11/Xvfb mehr..
Versuchte ich mit xvfb-run und Export der Anzeige, verwenden Sie ein shell-script im init.d xvfb zu starten, bekam ich ein bisschen weiter laufen zu können iceweasel von bash headless kein problem, aber noch keine Zigarre, wenn es darum ging, phantomjs und selenium. Ich denke, es kann nur nach unten kommen, um eine Inkompatibilität zwischen Selen und der version von phantomjs, unabhängig davon, dass 1.9.0 und echten headless browsing ist viel mehr wünschenswert.
War ich in der Mitte einrichten einer toolchain und werde versuchen zu kompilieren mich, wenn ich gefunden, der link oben, für alle interessierten in der cross-Compilierung, crosstools-ng das Leben viel einfacher macht.
Ich bin mit einem arm6, es gibt auch eine kompilierte version für arm7 mit 2.0.0, die Abhängigkeiten sind:
Die install-Prozedur, die ich entpackt habe die binären dropbox:
Original github link ist phantomjs-2.0.0-armv7
-bash: /usr/bin/phantomjs: cannot execute binary file
Hier ist, wie ich es gemacht habe :
Herunterladen phantomjs-Datei https://drive.google.com/open?id=1x063Krw6mZkRYW4K238a3EyRdklj5Evj
Ersetzen Sie zum gewünschten Ordner.
Geben 777 chmod:
chmod 777 phantomjs
Und versuchen, Sie zu nutzen.
Für Grafana - phantomjs-Datei muss in einem Ordner:
/usr/share/grafana/tools/phantomjs/
.Dieser binären Datei arbeiten, um mir den Banana pi M3 Debian-9. Architektur: - arm-armv7l. Kernel 4.20.7-sunxi