質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2355閲覧

webサーバでpythonによるwebdriver起動がうまくいかない

unisara

総合スコア8

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/07/12 08:28

ツイッターのスクレイピングの一環で動画をダウンロードするにあたりseleniumを使おうと考えています。
そのために、まずはwebdriverを起動させる必要があるんですが、webdriver.Chromeの部分でエラーがでます。
chromedriver実行ファイルが格納されているフルパスを指定していますが、なかなか前に進みません。

OS:linux64のwebサーバーにpythonファイルを格納して、サーバー上のターミナルで検証しています。
ご教示いただけますでしょうか?

python

1from selenium import webdriver 2 3driver = webdriver.Chrome('[path]/chromedriver') 4driver.get('https://www.google.com')

エラー内容は以下のとおり

terminal

1Traceback (most recent call last): 2 File "virtualenv/root/3.8/src/test.py", line 3, in <module> 3 driver = webdriver.Chrome('/home/[username]/virtualenv/root/3.8/lib/python3.8/site-packages/chromedriver_binary/chromedriver') 4 File "/home/[username]/virtualenv/root/3.8/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py", line 73, in __init__ 5 self.service.start() 6 File "/home/[username]/virtualenv/root/3.8/lib/python3.8/site-packages/selenium/webdriver/common/service.py", line 98, in start 7 self.assert_process_still_running() 8 File "/home/[username]/virtualenv/root/3.8/lib/python3.8/site-packages/selenium/webdriver/common/service.py", line 109, in assert_process_still_running 9 raise WebDriverException( 10selenium.common.exceptions.WebDriverException: Message: Service /home/[username]/virtualenv/root/3.8/lib/python3.8/site-packages/chromedriver_binary/chromedriver unexpectedly exited. Status code was: -5

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2021/07/12 09:34 編集

> OS:linux64のwebサーバーにpythonファイルを格納して、サーバー上のターミナルで検証 の状態で、Pythonを起動せずに、普通にlunuxのコマンド (cd とか ls とか) を実行するのと同じようにして、chromedriverをフルパスで指定して実行してみてください その際に、何かエラーが出ませんか? 正常に実行できれば、 https://qiita.com/YoshikiIto/items/ee42fa8931f2d97ff60c の「実際に動かしてみる」の「1. chromedriver.exeを起動する」に書かれてるように、 Starting ChromeDriver... みたいに表示されます
unisara

2021/07/13 01:55

ありがとうございます。 chromedriverがうまく起動しなかったので、結果的に以下のコマンドで実行しました。 [username]@[servername] [~]# exec 'virtualenv/root/3.8/chromedriver-Linux64' そうすると以下の結果が出力されます。 Starting ChromeDriver 2.24.417424 (c5c5ea873213ee72e3d0929b47482681555340c3) on port 9515 Only local connections are allowed. ここまで表示されて以下の文言が出ないままフリーズします。 「Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.」 ポートは確認できているので念のため以下のコマンドを実行 curl -X POST -H 'Content-Type: application/json' -d '{ "capabilities": {} }' localhost:9515/session すると結果は {"sessionId":"8e75a5c5d34d51baef17cbafc6bd5e1c","status":13,"value":{"message":"unknown error: cannot find dict 'desiredCapabilities'\n (Driver info: chromedriver=2.24.417424 (c5c5ea873213ee72e3d0929b47482681555340c3),platform=Linux 3.10.0-962.3.2.lve1.5.38.el7.x86_64 x86_64)"}} となります。 これは成功しているんでしょうか?
jbpb0

2021/07/13 02:42

> Only local connections are allowed. ここまで表示されて以下の文言が出ないままフリーズします。 「Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.」 私が使ってるWin 10でも、上記はそうなります > chromedriverがうまく起動しなかったので、結果的に以下のコマンドで実行しました。 [username]@[servername] [~]# exec 'virtualenv/root/3.8/chromedriver-Linux64' 「webdriver.Chrome()」に、chromedriverが単独で起動した絶対パスを指定してみてください > cannot find dict 'desiredCapabilities' linux64のwebサーバーにはChromeはインストールしてあるのですよね? 参考 https://www.seleniumqref.com/api/python/browser/Python_chrome.html
unisara

2021/07/13 05:39

>linux64のwebサーバーにはChromeはインストールしてあるのですよね? いえ。していませんでした。 やはり必要なんですね。 https://www.wikihow.jp/Linux%E3%81%AE%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%81%8B%E3%82%89Google-Chrome%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B ここを参考にインストールを試みたんですが、sudoが見つからなかったりaptがnot foundだったりして断念していました。
unisara

2021/07/13 05:44

>「webdriver.Chrome()」に、chromedriverが単独で起動した絶対パスを指定してみてください 結果以下のエラーが出ました。 Traceback (most recent call last): File "virtualenv/root/3.8/src/test.py", line 3, in <module> driver = webdriver.Chrome('/home/[username]/virtualenv/root/3.8/chromedriver-Linux64') File "/home/[username]/virtualenv/root/3.8/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py", line 76, in __init__ RemoteWebDriver.__init__( File "/home/[username]/virtualenv/root/3.8/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__ self.start_session(capabilities, browser_profile) File "/home/[username]/virtualenv/root/3.8/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "/home/[username]/virtualenv/root/3.8/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute self.error_handler.check_response(response) File "/home/[username]/virtualenv/root/3.8/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Chrome binary (Driver info: chromedriver=2.24.417424 (c5c5ea873213ee72e3d0929b47482681555340c3),platform=Linux 3.10.0-962.3.2.lve1.5.38.el7.x86_64 x86_64)
jbpb0

2021/07/13 05:58

> cannot find Chrome binary まずChrome入れないと Pythonで何かするのは、そのあと
unisara

2021/07/13 08:38

yumで実行すると以下のエラーが出ました。 Traceback (most recent call last): File "/bin/yum", line 28, in <module> import yummain ImportError: No module named yummain https://wordpress.ideacompo.com/?p=13490 こちらを参考に対処しようとしましたが、yumファイルが書き込み不可で断念。 別の方法を探します。
guest

回答1

0

ベストアンサー

cannot find Chrome binary

そのサーバーにChromeをインストールする必要があります
(ChromeDriverじゃなくて、WebブラウザのChrome)

投稿2021/08/15 11:17

jbpb0

総合スコア7653

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問