🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Jupyter

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

Chrome

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

Docker

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

Python

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

Q&A

解決済

1回答

1526閲覧

(Python)webスクレイピングとしてGoogleChromeを開くコードを入力したがchromedriverがバージョンを読み取れない

rog_2021

総合スコア2

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Jupyter

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

Chrome

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

Docker

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

Python

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

0グッド

0クリップ

投稿2021/01/11 14:47

編集2021/01/12 08:13

前提・実現したいこと

プログラミング始めて1カ月も満たない初心者です。
用語とかあまり分かっていないので変な言葉を使っていましたらすみません。
JpyterLabでwebスクレイピングを実際に試してみようと思い、Chromeを開くだけのコードを入力して実行したのですが、下記のようなエラーが出てしまいうまくいきませんでした。
Dockerの中の環境で実行しています。
PCはWindows10です。
chromedriver.exeは同じ作業ディレクトリに入っていました。
Googlechromeのバージョン: 87.0.4280.141
ダウンロードしたchromedriverのバージョンは87.0.4280.88

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

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: 'chromedriver.exe': 'chromedriver.exe' During handling of the above exception, another exception occurred: WebDriverException Traceback (most recent call last) <ipython-input-3-34972720f88d> in <module> ----> 1 browser = webdriver.Chrome('chromedriver.exe') ~/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: 'chromedriver.exe' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home

該当のソースコード

pip install selenium from selenium import webdriver browser = webdriver.Chrome('chromedriver.exe')

試したこと

chromedriverのバージョンが違うのかな?と思い、chromedriver87.0.4280.88を削除して
chromedriver88.0.4324.27をダウンロードしてから、もう一度上記のコードを入力してみたのですが、同じエラーが出ました。
Pathの指定もやってみたのですが解決できず。
別の方法でやってみようと思い、今度は下記のコードを入力してみました。

pip install selenium from selenium import webdriver from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(ChromeDriverManager().install())

これで実行してみたところ、下記のエラーコードが出ました。

ValueError Traceback (most recent call last) <ipython-input-40-56e3e3917946> in <module> 2 from webdriver_manager.chrome import ChromeDriverManager 3 ----> 4 driver = webdriver.Chrome(ChromeDriverManager().install()) ~/anaconda3/lib/python3.7/site-packages/webdriver_manager/chrome.py in __init__(self, version, os_type, path, name, url, latest_release_url, chrome_type, log_level, cache_valid_range) 26 url=url, 27 latest_release_url=latest_release_url, ---> 28 chrome_type=chrome_type) 29 30 def install(self): ~/anaconda3/lib/python3.7/site-packages/webdriver_manager/driver.py in __init__(self, name, version, os_type, url, latest_release_url, chrome_type) 52 latest_release_url) 53 self.chrome_type = chrome_type ---> 54 self.browser_version = chrome_version(chrome_type) 55 56 def get_os_type(self): ~/anaconda3/lib/python3.7/site-packages/webdriver_manager/utils.py in chrome_version(browser_type) 140 version = re.search(pattern, stdout) 141 if not version: --> 142 raise ValueError(f'Could not get version for Chrome with this command: {cmd}') 143 current_version = version.group(0) 144 return current_version ValueError: Could not get version for Chrome with this command: google-chrome --version || google-chrome-stable --version

バージョンを読み取れないと出てきていろいろ調べたのですが、全くお手上げ状態です。
どうしたら、上記のエラーを解決できますでしょうか?
もしかしたら初歩的なミスをしているかもしれませんが、どなたかお分かりになりましたらご教授いただければ幸いです。
よろしくお願いします。

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

PC:Windows10
エディション Windows 10 Home
バージョン 20H2
インストール日 ‎2020/‎12/‎23
OS ビルド 19042.685
エクスペリエンス Windows Feature Experience Pack 120.2212.551.0

Python3.7
Docker20.10.2
GoogleChrome87.0.4280.141
ここにより詳細な情報を記載してください。

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

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

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

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

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

otn

2021/01/12 04:21

Windows10の生の環境なのか、Dockerの中の環境なのかどっちでやろうとしていますか?
rog_2021

2021/01/12 08:05

情報不足で申し訳ございません。 Dockerの中の環境で実行しようとしています。 質問内容は変更しておきます。
otn

2021/01/12 13:00

そうですか。'chromedriver.exe' というWindows用のファイルを指定していたので、生の環境なのか、どっちだ?と思いました。解決したようで良かったです。回答にコメントしたように、Chromeをbeta版に上げる以外に、webdriver_manager のバージョン87をインストールする方法もあります。(「pip install バージョン指定」でググる)
rog_2021

2021/01/12 14:09

ありがとうございます。 おかげさまで解決することができました。 別の解決策のwebdriver_managerのインストールする方法も試してみたいと思います。 本日はお世話になりました!
guest

回答1

0

ベストアンサー

ChromeDriverが最新版のChromeにしか対応していないのが原因かもしれません。
私はBeta版をインストールして動かしました。
バージョン: 88.0.4324.79(Official Build)beta (64 ビット)

投稿2021/01/11 17:52

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

rog_2021

2021/01/12 01:29

ご回答いただきありがとうございます! chromeのBeta版を早速インストールして実行してみたのですが、やはり先ほどのエラーが出ました。 Dockerを使っているのでややこしくなっているのでしょうか?
退会済みユーザー

退会済みユーザー

2021/01/12 03:26

Docker コンテナは(ちょっと違うけど)仮想マシンのようなものなので、Docker 上の Chrome のバージョンを 88 にすれば動く(私の環境 Windows 10 Home では動きました)と思ったのですが・・・。 ちなみに Docker コンテナで動かしてる OS は何でしょうか?
otn

2021/01/12 04:24

> ChromeDriverが最新版のChromeにしか対応していないのが原因 ChromeのバージョンとChromeDriverのバージョンを合わせればいいだけです。 (ChromeDriverをバージョン指定でインストールする)
退会済みユーザー

退会済みユーザー

2021/01/12 05:18

ChromeDriver を使うのは、今回が初めてでした。 何も考えずに最新版をインストールしたので、Chrome 88 を要求されたのですね。 ご指摘、ありがとうございます!
rog_2021

2021/01/12 12:51

m-ogura様 Docker上のchromeバージョンを上げたら開いてくれました。 何とか解決できたのでホッとしています。 ご回答いただきありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問