GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie installiere ich PhantomJS für die Verwendung mit Python Selenium auf dem Raspberry Pi?

Ok, ich beginne mit der Lösung, es gibt eine für Arm kompilierte Version hier phantomjs-linux-armv6l, auf dem Pi führen Sie die folgenden Befehle aus:

$ 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

Ich habe hinzugefügt:

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

Phantomjs werden also auf deinem Weg sein.

[email protected] ~ $ phantomjs --version
1.9.0

[email protected] ~ $ phantomjs
phantomjs> 

Jetzt haben wir das erledigt, Zeit zum Testen:

[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")>

Aus der FAQ. Ab PhantomJS 1.5 ist es rein kopflos und X11/Xvfb muss nicht mehr ausgeführt werden. .

Ich habe es mit xvfb-run versucht und Exportieren der Anzeige, Verwenden eines Shell-Skripts in init.d, um xvfb zu starten, bin ich etwas weiter gekommen, da ich Iceweasel von Bash aus ohne Kopf ausführen konnte, kein Problem, aber immer noch keine Zigarre, wenn es um Phantomjs und Selen ging. Ich denke, es kann nur zu einer Inkompatibilität zwischen Selenium und der Version von phantomjs kommen, unabhängig davon, dass 1.9.0 und echtes Headless-Browsing viel wünschenswerter sind.

Ich war gerade dabei, eine Toolchain einzurichten und wollte versuchen, sie selbst zu kompilieren, als ich den obigen Link fand. Für alle, die sich für Cross-Compiling interessieren, macht crosstools-ng das Leben viel einfacher.

Ich verwende arm6, es gibt auch eine kompilierte Version für arm7 mit 2.0.0, die Abhängigkeiten sind:

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

Beim Installationsvorgang habe ich die Binärdatei in Dropbox extrahiert:

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

Der ursprüngliche Github-Link ist phantomjs-2.0.0-armv7


Linux
  1. So installieren Sie Python unter Linux

  2. So installieren und verwenden Sie den Ping-Befehl unter Linux

  3. Wie Kali mit dem bevorstehenden Python 2 End-of-Life umgeht

  4. So verwenden Sie den Export mit Python unter Linux

  5. Wie kann ich das neueste Anaconda mit wget installieren

So installieren Sie Setuptools für Python unter Linux

So installieren Sie Raspbian OS auf Raspberry Pi

So konfigurieren Sie Ihr Raspberry Pi OS, um es zum ersten Mal zu verwenden

So installieren Sie Python 2.7 unter CentOS 7.1 oder 6.7 mit Anaconda

So installieren Sie die Anaconda-Python-Distribution unter Ubuntu 18.04

So installieren Sie Apache mit Python Mod_wsgi unter Debian 10