前提・実現したいこと
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/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー