GNU/Linux >> Tutoriels Linux >  >> Linux

Comment installer PhantomJS pour une utilisation avec Python Selenium sur le Raspberry Pi ?

Ok je vais commencer par la solution, il y a une version compilée pour arm ici phantomjs-linux-armv6l, sur le pi lancez les commandes suivantes :

$ cd /tmp
$ wget https://github.com/aeberhardo/phantomjs-linux-armv6l/archive/master.zip
$ unzip master.zip
$ cd phantomjs-linux-armv6l-master
$ bunzip2 *.bz2 && tar xf *.tar

J'ai ajouté :

sudo cp phantomjs-1.9.0-linux-armv6l/bin/phantomjs  /usr/bin

Alors phantomjs sera sur votre chemin.

[email protected] ~ $ phantomjs --version
1.9.0

[email protected] ~ $ phantomjs
phantomjs> 

Maintenant que c'est fait, il est temps de tester :

[email protected] ~ $ cat test.py
#!/usr/bin/python
from selenium import webdriver

driver = webdriver.PhantomJS()
driver.get('http://stackoverflow.com/questions/36314771/how-to-install-phantomjs-for-use-with-python-selenium-on-the-raspberry-pi/36388824#36388824')
a = driver.find_element_by_xpath('//*[@id="question-header"]/h1/a')
print(a.text)
print(driver)
[email protected] ~ $ python test.py 
How to install PhantomJS for use with Python Selenium on the Raspberry Pi?
<selenium.webdriver.phantomjs.webdriver.WebDriver (session="b184e110-f9c4-11e5-aede-7f5c42f062d7")>

De la faq. À partir de PhantomJS 1.5, il est purement sans tête et il n'est plus nécessaire d'exécuter X11/Xvfb. .

J'ai essayé d'utiliser xvfb-run et en exportant l'affichage, en utilisant un script shell dans init.d pour démarrer xvfb, je suis allé un peu plus loin en pouvant exécuter iceweasel depuis bash sans tête sans problème mais toujours pas de cigare quand il s'agissait de phantomjs et de sélénium. Je pense que cela peut simplement se résumer à une incompatibilité entre le sélénium et la version de phantomjs, même si la version 1.9.0 et la véritable navigation sans tête sont beaucoup plus souhaitables.

J'étais en train de mettre en place une chaîne d'outils et j'allais essayer de me compiler quand j'ai trouvé le lien ci-dessus, pour toute personne intéressée par la compilation croisée, crosstools-ng rend la vie beaucoup plus facile.

J'utilise un arm6, il existe également une version compilée pour arm7 utilisant 2.0.0, les dépendances sont :

sudo apt-get install flex bison gperf ruby perl libsqlite3-dev libfontconfig1-dev libicu-dev libfreetype6 libssl-dev libpng-dev libjpeg-dev python libX11-dev libxext-dev

La procédure d'installation, j'ai extrait le binaire vers dropbox :

wget https://www.dropbox.com/s/epj1rji9d239dco/phantomjs
chmod +x phantomjs
sudo cp phantomjs /usr/bin

Le lien github d'origine est phantomjs-2.0.0-armv7


Linux
  1. Comment installer Python sur Linux

  2. Comment installer et utiliser la commande Ping sous Linux

  3. Comment Kali gère la prochaine fin de vie de Python 2

  4. Comment utiliser l'exportation avec Python sous Linux

  5. Comment puis-je installer le dernier Anaconda avec wget

Comment installer Setuptools pour Python sur Linux

Comment installer le système d'exploitation Raspbian sur Raspberry Pi

Comment configurer votre Raspberry Pi OS pour l'utiliser pour la première fois

Comment installer Python 2.7 sur CentOS 7.1 ou 6.7 avec Anaconda

Comment installer la distribution Anaconda Python sur Ubuntu 18.04

Comment installer Apache avec Python Mod_wsgi sur Debian 10