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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Python

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

Q&A

0回答

783閲覧

WebDriverException: Message: Service MyPandas/chromedriver.exe unexpectedly exited. の直し方

wmibfyuu1

総合スコア0

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Python

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

0グッド

0クリップ

投稿2021/02/15 17:21

編集2021/02/16 15:50

前提・実現したいこと

pythonを用いてウェブスクレイピングの自動化を試みています。WindowsにDockerを使った環境構築をしてJupyter Labを使っています。 
今のところ書いているコードは以下の通りです

python

1!pip install selenium 2!pip install beautifulsoup4 3from selenium import webdriver 4import time 5import pandas as pd 6USER="test_user" 7PASS="test_pw" 8browser=webdriver.Chrome(executable_path='MyPandas/chromedriver.exe') 9browser.implicitly_wait(3)

また、Dockerの中にMyPandas その中にchromedriver というファイルがあります。
chromedriver ダウンロードZIPファイルを、DockerにマウントしているファイルであるMyPandasの中に保存しました。 JupyterLab内でこのファイルをひらこうとすると
JupyterLab is unable to open this file type. という文字が出てきて開けません。

発生している問題・エラーメッセージ

browser=webdriver.Chrome(executable_path='MyPandas/chromedriver.exe') browser.implicitly_wait(3)

という部分を実行したところ、下記のようなエラーが出ました。

--------------------------------------------------------------------------- FileNotFoundError Traceback (most recent call last) ~/anaconda3/lib/python3.7/site-packages/selenium/webdriver/common/service.py in start(self) 75 stderr=self.log_file, ---> 76 stdin=PIPE) 77 except TypeError: ~/anaconda3/lib/python3.7/subprocess.py in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, encoding, errors, text) 774 errread, errwrite, --> 775 restore_signals, start_new_session) 776 except: ~/anaconda3/lib/python3.7/subprocess.py in _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, start_new_session) 1521 err_msg += ': ' + repr(err_filename) -> 1522 raise child_exception_type(errno_num, err_msg, err_filename) 1523 raise child_exception_type(err_msg) FileNotFoundError: [Errno 2] No such file or directory: 'MyPandas\chromedriver': 'MyPandas\chromedriver' During handling of the above exception, another exception occurred: WebDriverException Traceback (most recent call last) <ipython-input-24-ba30553601fa> in <module> ----> 1 browser=webdriver.Chrome(executable_path='MyPandas\chromedriver') 2 browser.implicitly_wait(3) ~/anaconda3/lib/python3.7/site-packages/selenium/webdriver/chrome/webdriver.py in __init__(self, executable_path, port, options, service_args, desired_capabilities, service_log_path, chrome_options, keep_alive) 71 service_args=service_args, 72 log_path=service_log_path) ---> 73 self.service.start() 74 75 try: ~/anaconda3/lib/python3.7/site-packages/selenium/webdriver/common/service.py in start(self) 81 raise WebDriverException( 82 "'%s' executable needs to be in PATH. %s" % ( ---> 83 os.path.basename(self.path), self.start_error_message) 84 ) 85 elif err.errno == errno.EACCES: WebDriverException: Message: 'MyPandas\chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home

該当のソースコード

試したこと

ファイルのパスの名前が間違っていいるのではないかと考え確認しました。しかしながらファイル名の記述法は、Dockerにおいてあるファイルなのでこれで正しいのではないかと思います。
エラー名をコピーしてインターネットで検索をかけたのですが、何が原因でこうなっているのか知識に乏しい私に情報をかみ砕いて理解することが出来ませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

jbpb0

2021/02/15 23:09

> chromedriver ダウンロードZIPファイルを、DockerにマウントしているファイルであるMyPandasの中に保存しました。 linux用のzipファイルをダウンロードしました?
wmibfyuu1

2021/02/16 06:01

linux用 というのがわからないので、適切な回答になっているか分からないのですが、 私のクロームは  バージョン: 88.0.4324.150(Official Build) (64 ビット) と書かれてあったので Chromeバージョン88を使用している場合は、ChromeDriver88.0.4324.96をダウンロードしてください というところから ダウンロードしました。 しかし数字が少し違うところが不安です。 最後の三桁(150)まで合致しているものはダウンロードするところにありませんでした
wmibfyuu1

2021/02/16 15:42 編集

私も送ってくれたURLでchromedriver_win32.zip というものをダウンロードして、ダウンロードしたものをすべて展開しました。windowsを使っているのでlinuxではないと思います。 linux用もダウンロードして展開したのですが、それでも同じエラーが出ています
jbpb0

2021/02/16 15:52

WindowsのDockerは、仮想PCを動かした上で動いてるので、そこはWindowsではありません 全く別のPCがあると思ってください
wmibfyuu1

2021/02/16 15:58

なるほど。わかりました。しかしながらlinuxと書いてあるものを、ドッカ―にマウントしているファイルにすべて展開して、pythonのパスを記述しなおしてもエラーが出るの出てしまいます、
jbpb0

2021/02/16 15:59

> No such file or directory: 'MyPandas\\chromedriver': 'MyPandas\\chromedriver' それはWindowsのパスの指定の書き方 linuxは違います
jbpb0

2021/02/16 16:03

Pythonで import os print(os.listdir('MyPandas')) を実行したら、chromedriverありますか?
wmibfyuu1

2021/02/16 16:04

夜分遅くに返信いただきありがとうございます。 linuxの書き方をただいましらべまして ```python browser=webdriver.Chrome(executable_path='MyPandas/chromedriver.exe') browser.implicitly_wait(3) ``` と書き直したところ WebDriverException: Message: Service MyPandas/chromedriver.exe unexpectedly exited. Status code was: と初めに質問した時と同じエラーが出てきてしまいました
wmibfyuu1

2021/02/16 16:05

はい。 import os print(os.listdir('MyPandas')) を実行しますと ['.ipynb_checkpoints', 'chromedriver', 'chromedriver.exe', 'rawdate', '株式会社A.xlsx', '株式会社B.xlsx', '株式会社C.xlsx', '株式会社D.xlsx', '株式会社E.xlsx', '株式会社F.xlsx', '株式会社G.xlsx', '株式会社H.xlsx', '株式会社I.xlsx', '株式会社J.xlsx', '株式会社K.xlsx', '株式会社L.xlsx', '株式会社M.xlsx', '株式会社N.xlsx', '株式会社O.xlsx', '株式会社P.xlsx', '株式会社Q.xlsx', '株式会社R.xlsx', '株式会社S.xlsx', '株式会社T.xlsx', '株式会社U.xlsx', '株式会社V.xlsx', '株式会社W.xlsx', '株式会社X.xlsx', '株式会社Y.xlsx', '株式会社Z.xlsx'] と出てきます。あります
jbpb0

2021/02/16 16:08

> 'chromedriver', 'chromedriver.exe', 二つありますよね ファイル名に「.exe」が付いてるのはWindows用のでは?
wmibfyuu1

2021/02/16 16:14

そうでした、、exeがついていない方を実行しても browser=webdriver.Chrome(executable_path='MyPandas/chromedriver) 以下のようなエラーが出てしまいます。本当にわからなくなってしまいました、、 WebDriverException: Message: Service MyPandas/chromedriver unexpectedly exited. Status code was: 127
jbpb0

2021/02/24 13:33 編集

> Status code was: 127 pythonからではなく、(docker内のlinux上で)chromedriverを単独で動かすと、原因分かるかもしれません おそらく、linux側に何か足りないものがあるので、chromedriverを単独で動かした時のエラーメッセージからそれを読み取って、(docker内の)linuxに追加インストールしてください 参考 https://qiita.com/taikomegane/items/58184ea359788ff32147 の「4.Status code 127を解決する」 質問者さんの環境で足りないものは、上記Webページに書かれてるものとは違うものかもしれないので、上記はあくまでも確認手段の参考にして、質問者さんの環境で出たエラーメッセージを読んで、足りないものを入れてください 【追記】 chromedriverを単独で動かしたり、その結果分かった足りないものを追加インストールしたりするのは、docker内のlinuxです Windows側ではありませんので、ご注意ください
jbpb0

2021/02/28 10:38

別の質問をされてますね https://teratail.com/questions/324112 上記の、「docker内のlinuxでchromedriverを単独で動かして、エラーメッセージからlinux側の不足を読み取って、それをlinuxで追加インストールする」では、「Status code was: 127」が解決しなかったのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問