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

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

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

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

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

解決済

2回答

4152閲覧

seleniumを使用し、chromeを開くと、処理後に消える

keisukefukuhara

総合スコア7

Python

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

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

1クリップ

投稿2021/11/04 06:41

編集2021/11/04 07:44

Webスクレイピング

実行環境
macOS Monterey
jupyternotebook 6.4.5
python 3.8
selenium 3.141.0
google chrome 95.0.4638.69
chromedriver 95.0.4638.54

webスクレイピングのため、jupiterで下記のコードでchromeを立ち上げると、処理開始時はブラウザが立ち上がるのですが、処理時間が長く、処理が終わると同時にブラウザが落ちて、以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ
WebDriverException:Message:unknown error:Devtools port number file contents〈51884〉were in an unexpected format

該当のソースコード

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.select import Select
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.alert import Alert
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException

options = Options()
options.add_argument('--disable-gpu');
options.add_argument('--disable-extensions');
options.add_argument('--proxy-server="direct://"');
options.add_argument('--proxy-bypass-list=*');
options.add_argument('--start-maximized');

DRIVER_PATH = '/Users/xxx/chromedriver' #/xxx/には使用しているPCのパスが入っています。
driver = webdriver.Chrome(executable_path=DRIVER_PATH, options=options)

試したこと

chromedriverをひとつ古いものにしてみましたが、結果は同じでした。

よろしくお願いいたします。

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

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

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

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

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

otn

2021/11/05 00:22

処理自体は問題なく終わった後のことですか?
keisukefukuhara

2021/11/05 04:28

いえ、処理中はクロームが立ち上がるのですが、処理が終わる(自動的に処理が中断していると思います)と落ちます。
otn

2021/11/05 17:11

質問の仕方が悪かったですね。 「あなたが行いたかった処理自体は問題なく終わった後のことですか?」 が質問でした。 あなたが行いたかった処理自体は終わっておらず中断したということですね。 中断する途中まではちゃんと出来ていたのでしょうか?最初から駄目?
keisukefukuhara

2021/11/06 08:53

otn様 ありがとうございます。 driver = webdriver.Chrome(executable_path=DRIVER_PATH, options=options) の部分で、ブラウザが立ち上がり、そこで処理に時間がかかり、処理が終わるとブラウザが落ちてエラーになるという状況でした。
otn

2021/11/07 02:15 編集

> そこで処理 > 処理が終わると の「処理」とは何を指していますか?「ブラウザの起動」「ブラウザ起動後のノード検索など」のどちら?
keisukefukuhara

2021/11/08 04:05

お世話になっております。 どうしてもChromeのブラウザを使う必要が出てきました。 下記のようなエラーを吐き出すのですが、解決方法はありませんでしょうか。 よろしくお願いいたします。 --------------------------------------------------------------------------- WebDriverException Traceback (most recent call last) <ipython-input-21-9321dc5619d0> in <module> ----> 1 driver = webdriver.Chrome('/Users/xxx/Downloads/chromedriver') ~/opt/anaconda3/lib/python3.8/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) 74 75 try: ---> 76 RemoteWebDriver.__init__( 77 self, 78 command_executor=ChromeRemoteConnection( ~/opt/anaconda3/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py in __init__(self, command_executor, desired_capabilities, browser_profile, proxy, keep_alive, file_detector, options) 155 warnings.warn("Please use FirefoxOptions to set browser profile", 156 DeprecationWarning, stacklevel=2) --> 157 self.start_session(capabilities, browser_profile) 158 self._switch_to = SwitchTo(self) 159 self._mobile = Mobile(self) ~/opt/anaconda3/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py in start_session(self, capabilities, browser_profile) 250 parameters = {"capabilities": w3c_caps, 251 "desiredCapabilities": capabilities} --> 252 response = self.execute(Command.NEW_SESSION, parameters) 253 if 'sessionId' not in response: 254 response = response['value'] ~/opt/anaconda3/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py in execute(self, driver_command, params) 319 response = self.command_executor.execute(driver_command, params) 320 if response: --> 321 self.error_handler.check_response(response) 322 response['value'] = self._unwrap_value( 323 response.get('value', None)) ~/opt/anaconda3/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py in check_response(self, response) 240 alert_text = value['alert'].get('text') 241 raise exception_class(message, screen, stacktrace, alert_text) --> 242 raise exception_class(message, screen, stacktrace) 243 244 def _value_or_default(self, obj, key, default): WebDriverException: Message: unknown error: Devtools port number file contents <50490> were in an unexpected format
guest

回答2

0

ベストアンサー

WebDriverException: Message: unknown error: Devtools port number file contents <50490> were in an unexpected format

TEMPディレクトリに、scoped_dir数字_数字というディレクトリが出来て、その中のDevToolsActivePortというファイルのことではないかと思います。ただ、Chromedriverが終了するとディレクトリが消えるので残ってないかも。

ググるとChromeを最新版にしたら直ったという例もありますね。
Chromeは最新版でしょうか?違うなら最新版にして、そのバージョンにあったChromedriverにしてみましょう。

投稿2021/11/08 04:54

編集2021/11/08 04:56
otn

総合スコア85901

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

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

keisukefukuhara

2021/11/08 05:29

otn様 ご回答ありがとうございます。 Chromeは最新になっております。 一度Chromeを再インストールしてみます。
guest

0

イロイロ調べてみましたが、おそらくドライバが合わないという結論に至りました。諦めて他のブラウザを使うことにします。


古いバージョンのChromeブラウザがアプリケーション内に存在していることがわかり、それを新しいブラウザに置き替えることで、解決に至りました。

投稿2021/11/05 08:38

編集2021/11/16 06:46
keisukefukuhara

総合スコア7

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問