Comment faire pour installer PhantomJS pour une utilisation avec Python Sélénium sur le Raspberry Pi?
Je veux exécuter un script Python à l'aide Selenium WebDriver
avec PhantomJS
comme un headless browser sur mon Raspberry Pi l'exécution de Raspbian.
J'ai d'abord écrit le script dans OS X où il fonctionne très bien. Mais en essayant de le faire fonctionner sur la Framboise, je vais avoir des problèmes.
Lorsque vous essayez d'exécuter le script, j'obtiens cette erreur:
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
Brève version du script:
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)
J'ai vu d'autres gens ont des problèmes ressemblant à la mienne, avec différentes solutions – la plupart semblent impliquer la construction d'PhantomJS vous-même, ou de clonage et d'installer un Github branche adapté pour Framboise (qui est out-of-sync avec les principaux PhantomJS projet).
Questions
- Personne ne sait comment résoudre le problème – et en effet ce problème est vraiment sur?
- Si la solution consiste à installer les binaires manuellement à
/usr/local/bin
ou tel, comment dois-je procéder? Les fichiers binaires disponibles sur le PhantomJS page web est pourlinux-x86
etlinux-i686
, donc je suis en supposant qu'ils ne fonctionnent pas sur un Raspberry Pi 2 B ARM Cortex A-7 processeur. - J'ai également essayé de construire PhantomJS moi-même en fonction de ces instructions, mais le processus a gelé à mi-chemin à travers. La Framboise aussi ne répond pas à la configuration matérielle requise pour le bâtiment.
Informations de fond
- Je suis en utilisant
Python 2.7.9
- J'ai créé un
virtualenv
et installé tous les modules Python; par exemple,pip install selenium
, et essayez d'exécuter le script ici - J'ai installé la dernière version de PhantomJS via
sudo apt-get install phantomjs
- J'ai désactivé mon
ufw
pare-feu alors que les tests
locate phantomjs
une fois que vous trouver le déplacer vers /usr/bin
? vous pourriez avoir besoin pour exécuter sudo updatedb
avant d'exécuter locate
... et vous pourriez avoir à apt-get install package de sa part de ...Recherchez donne ce résultat: pastebin.com/BBG2wgF0
avez-vous essayé ce stackoverflow.com/questions/18916123/... (en gros, la réinstallation de nœud et de phantomjs)
La version 1.4 qui nécessite x11 ou vfvb, je me suis fait une erreur en relation de ne pas être en mesure de se connecter au serveur X, je suis actuellement en train de compiler à partir des sources, a eu quelques problèmes, mais le dos de la compilation de nouveau donc je vais voir si je peux faire un tri, il faudra quelques heures sur la pi vous permettra de savoir de demain.
ive été la lecture que, dernièrement, les gens utilisent de plus sans tête, chrome et firefox stackoverflow.com/questions/49172172/...
OriginalL'auteur Winterflags | 2016-03-30
Vous devez vous connecter pour publier un commentaire.
Ok je vais commencer avec la solution, il existe une version compilé pour arm ici phantomjs-linux-armv6l, sur la pi exécutez les commandes suivantes:
J'ai ajouté:
Donc phantomjs seront sur votre chemin.
Maintenant que nous avons fait, le temps de tester:
De la faq. De départ avec PhantomJS 1.5, c'est du pur sans tête et il n'est pas nécessaire pour exécuter X11/Xvfb plus..
J'ai essayé d'utiliser xvfb-run et l'exportation de l'écran, à l'aide d'un script shell dans l'init.d pour commencer xvfb, j'ai eu un peu plus de pouvoir courir iceweasel de bash sans tête, pas de problème mais toujours pas de cigare quand il est venu à phantomjs et le sélénium. Je pense qu'il peut tout juste de descendre à une incompatibilité entre le sélénium et la version de phantomjs, quelle que soit d'avoir 1.9.0 et réel sans tête, la navigation est beaucoup plus souhaitable.
J'étais en train de mettre en place un ensemble d'outils et allait essayer de compiler moi-même quand j'ai trouvé le lien ci-dessus, pour quiconque s'intéresse à la compilation croisée, crosstools-ng rend la vie beaucoup plus facile.
Je suis en cours d'exécution un arm6, il y a aussi un version compilée pour arm7 à l'aide de la version 2.0.0, les dépendances sont:
La procédure d'installation, j'ai extrait le fichier binaire dropbox:
L'original github lien est phantomjs-2.0.0-armv7
Pas de soucis, j'ai oublié le vôtre était un arm7, mais il y a beaucoup de versions de frapper autour, j'ai ajouté un lien vers une version de l'arm7 et la procédure d'installation, il devrait fonctionner correctement comme il a été compilé sur un pi.
Je vais ajouter un lien vers le fichier binaire en une minute
fait tout ce travail, O. K?
Oui! Merci beaucoup!
OriginalL'auteur Padraic Cunningham
Voici comment je l'ai fait :
OriginalL'auteur ahmed.soli
Télécharger ce phantomjs fichier https://drive.google.com/open?id=1x063Krw6mZkRYW4K238a3EyRdklj5Evj
Remplacer au besoin du dossier.
Donner chmod 777:
chmod 777 phantomjs
Et essayez de l'utiliser.
Pour Grafana - phantomjs fichier doit être dans un dossier:
/usr/share/grafana/tools/phantomjs/
.Ce fichier binaire travail à moi sur Banana pi M3 Debian 9. Architecture: arm armv7l. Noyau 4.20.7-sunxi
OriginalL'auteur user3500968