web-dev-qa-db-ja.com

RaspberryPiのPython Seleniumで使用するためにPhantomJSをインストールする方法は?

でヘッドレスブラウザとしてPhantomJSを使用してSelenium WebDriverを使用してPythonスクリプトを実行したい)Raspbianを実行しているRaspberry Pi

私はもともとOSXでスクリプトを作成しましたが、そこでは正常に動作します。しかし、それをRaspberryで機能させようとすると、問題が発生します。

スクリプトを実行しようとすると、次のエラーが発生します。

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

スクリプトの簡単なバージョン:

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)

他の人が私のものに似た問題を抱えているのを見てきました-さまざまな解決策があります-ほとんどは自分でPhantomJSを構築するか、Raspberryに適合したGithubブランチを複製してインストールする必要があります(現在はメインのPhantomJSプロジェクトと同期していません)。

質問

  • 誰かが問題を解決する方法を知っていますか?そして実際に問題が実際に何についてであるか?
  • 解決策がバイナリを/usr/local/binなどに手動でインストールすることを含む場合、どうすればよいですか? PhantomJS Webページ で利用可能なバイナリはlinux-x86およびlinux-i686用であるため、Raspberry Pi 2 Bでは機能しないと想定しています。 )ARM Cortex A-7プロセッサ
  • 私もこれらに従ってPhantomJSを自分で構築しようとしました 指示 、しかしプロセスは途中でフリーズしました。ラズベリーは、構築に推奨されるハードウェア要件も満たしていません。

背景情報

  • Python 2.7.9を使用しています
  • virtualenvを作成し、すべてのPythonモジュールをインストールしました。例:pip install Selenium、ここでスクリプトを実行してみます
  • Sudo apt-get install phantomjsを介してPhantomJSの最新バージョンをインストールしました
  • テスト中にufwファイアウォールを無効にしました
9
Winterflags

さて、私は解決策から始めます、ここにarm用にコンパイルされたバージョンがあります phantomjs-linux-armv6l 、piで次のコマンドを実行します:

$ 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

追加した:

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

だからphantomjsはあなたの道になります。

pi@raspberrypi ~ $ phantomjs --version
1.9.0

pi@raspberrypi ~ $ phantomjs
phantomjs> 

これで完了です。テストする時間です。

pi@raspberrypi ~ $ 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)
pi@raspberrypi ~ $ 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")>

faq から。 PhantomJS 1.5以降、これは純粋なヘッドレスであり、X11/Xvfbを実行する必要はありません。

xvfb-runを使用して表示をエクスポートし、init.dのシェルスクリプトを使用してxvfbを起動してみましたが、もう少し実行できるようになりましたbashヘッドレスのiceweaselは問題ありませんが、phantomjsとSeleniumに関しては葉巻はありません。 1.9.0を使用していて、実際のヘッドレスブラウジングの方がはるかに望ましいにもかかわらず、Seleniumとphantomjsのバージョンとの非互換性に帰着する可能性があると思います。

私はツールチェーンをセットアップしている最中で、上記のリンクを見つけたときに自分でコンパイルしようとしていました。クロスコンパイルに興味のある人は、 crosstools-ng で作業がずっと楽になります。

私はarm6を実行していますが、2.0.0を使用するarm7には コンパイル済みバージョン もあります。依存関係は次のとおりです。

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

インストール手順、私はドロップボックスにバイナリを抽出しました:

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

元のgithubリンクは phantomjs-2.0.0-armv7

16

このphantomjsファイルをダウンロード https://drive.google.com/open?id=1x063Krw6mZkRYW4K238a3EyRdklj5Evj

必要なフォルダに置き換えます。

777 chmodを与える:chmod 777 phantomjs

そして使ってみてください。

Grafanaの場合-phantomjsファイルは次のフォルダにある必要があります:/usr/share/grafana/tools/phantomjs/

このバイナリファイルは、Banana pi M3 Debian 9で動作します。アーキテクチャ:armarmv7l。カーネル4.20.7-sunxi

0
user3500968

これが私がそれをした方法です:

For 64-bit system, download phantomjs-1.9.7-linux-x86_64.tar.bz2 (12.6 MB).
For 32-bit system, download phantomjs-1.9.7-linux-i686.tar.bz2 (12.9 MB).

Step 1> $ wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.7-linux-x86_64.tar.bz2

Step 2> $ tar -xvf phantomjs-1.9.7-linux-x86_64.tar.bz2

Step 3> $ cd phantomjs-1.9.7-linux-x86_64

Step 4> $ cd bin

Step 5> $ Sudo cp phantomjs /usr/bin

To check phantomjs installed properly perform the following step : 

Step 6> $ phantomjs -h

To install the dependencies on Red Hat based systems:

Step 7> $ Sudo yum install fontconfig freetype libfreetype.so.6 libfontconfig.so.1 libstdc++.so.6
0
Ahmed Soliman