サーバーでSeleniumを使用してクローラーを構築したいと思います。
したがって、Chromedriver、Chrome-browserなどの必要な依存関係をUbuntu17.10サーバーにインストール/ダウンロードしました
ただし、次のコードを実行すると:
driver = webdriver.Chrome()
次のエラーを返します。
---------------------------------------------------------------------------
WebDriverException Traceback (most recent call last)
<ipython-input-14-2cdab8938403> in <module>()
----> 1 driver = webdriver.Chrome()
/home/zachary/.local/lib/python3.6/site-packages/Selenium/webdriver/chrome/webdriver.py in __init__(self, executable_path, port, options, service_args, desired_capabilities, service_log_path, chrome_options)
66 service_args=service_args,
67 log_path=service_log_path)
---> 68 self.service.start()
69
70 try:
/home/zachary/.local/lib/python3.6/site-packages/Selenium/webdriver/common/service.py in start(self)
96 count = 0
97 while True:
---> 98 self.assert_process_still_running()
99 if self.is_connectable():
100 break
/home/zachary/.local/lib/python3.6/site-packages/Selenium/webdriver/common/service.py in assert_process_still_running(self)
109 raise WebDriverException(
110 'Service %s unexpectedly exited. Status code was: %s'
--> 111 % (self.path, return_code)
112 )
113
WebDriverException: Message: Service chromedriver unexpectedly exited. Status code was: 127
興奮しているということはどういうことですか?
そのエラーコードの本来の意図がどこにあるのか、どこで修正を開始できるのかわかりません。
非常にまれなケースに見えます。
関連する可能性があります:
デスクトップにubuntu desktop 17.10をインストールしましたが、GUIブートを取得できませんでした。したがって、私は端末のみを使用していますが、今のところうまく機能しています。 Macからサーバーデスクトップにsshとリモート制御jupyterノートブックをインストールしましたが、これらのエラーはそこから発生します。この情報がこのエラーの解決に関連していることを望みます。それ以外の場合は中止します。
chromedriver
には追加のライブラリが必要なようです。これで問題が解決しました:
apt-get install -y libglib2.0-0=2.50.3-2 \
libnss3=2:3.26.2-1.1+deb9u1 \
libgconf-2-4=3.2.6-4+b1 \
libfontconfig1=2.11.0-6.7+b1
私は、X/GUIのないサーバー/ VMの代わりにdockerコンテナーを使用して、同様のセットアップに取り組んでいました。
必要な依存関係を把握するために、コマンドラインから次のように繰り返し実行しようとしました:/opt/chromedriver/2.33/chromedriver --version
何度も。
それから、毎回apt-cache search <STUFF>
やapt-cache madison <STUFF>
などのコマンドを使用して、deb
2.33で必要なchromedriver
パッケージの正確なバージョンを見つけました(ただし、同様の何かがchromedriver
のどのバージョンでも機能すると思います。
VPSでSelenium/chromedriverを使用しているときに同じエラーが発生しました。 chromium-browser
をインストールしましたが、問題はなくなりました。
Sudo apt-get install -y chromium-browser
たぶんchromium-browser
が必要ではないかもしれませんが、パッケージはそれとともにインストールされました。しかし、それは簡単な修正でした。
Selenium v3.11.0、ChromeDriver v2.36およびChrome v64.xから最新のChromeDriverをダウンロードする必要があります ChromeDriver-Chrome向けWebDriver そしてシステム内に配置します。次にWebDriverとWebBrowserを初期化するときに引数を渡す必要がありますexecutable_path
とChromeDriverの絶対パスを次のように使用します。
from Selenium import webdriver
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
driver.get("http://www.python.org")
既存のchromedriverを慎重に削除し、それを新しいバージョンに更新することで解決しました。
wget https://chromedriver.storage.googleapis.com/2.46/chromedriver_linux64.Zip
をダウンロードします(必要に応じて2.46ビットを新しいものに置き換えます。互換性のあるバージョンはこちらをご覧ください: http://chromedriver.chromium.org/downloads )chmod +x chromedriver
を実行して解凍し、実行可能ファイルに変換しますmv -f chromedriver /usr/local/bin/chromedriver
に移動して、PATHに表示されるようにしますこれで問題が解決するはずです。更新を最初に試したとき、古いバージョンを削除せず、まだ誤って使用していたため、更新が機能しないと思いました。
古いバージョンに戻すことも解決策かもしれません...
Ubuntu 18.10を使用しており、最新のSelenium(3.141.0)とChromeDriver(75.0.3770.8)をインストールしましたが、同じアクセス許可の問題が発生し、その後ステータスコード127が発生しました。
Chromiumをインストールしようとしましたが、Ubuntuがバージョン73を使用していることに気付きました。だから、Chromedriverの最新バージョン(この時点では75)からバージョン73に戻りました。
私はこれと同じ問題を抱えていましたが、問題はchromedriverバージョンによるものでした。
最新の Chrome Browser とともに最新の chromedriver を使用していることを確認してください。