Message: chrome not reachableのエラー対処 pythonでスクレイピング

はじめに

pythonでGoogle chromeを利用してスクレイピングした時に下記のエラーに悩まされたため、
ブログに解決方法を記します。

『Message: chrome not reachable』

原因

下記の通り、chromeのプロセスが溢れていることが原因でした。
よって、暫定対応としてchromeのプロセスをKILLすることで正常に実行することができる

[qiita-bot@qiita-bot python]$ python3 main.py 
Traceback (most recent call last):
  File "main.py", line 30, in <module>
    driver = webdriver.Chrome(options=options)
  File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py", line 81, in __init__
    desired_capabilities=desired_capabilities)
  File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: chrome not reachable
  (Session info: headless chrome=85.0.4183.83)

[qiita-bot@qiita-bot python]$ 
[qiita-bot@qiita-bot python]$ ps
    PID TTY          TIME CMD
   1206 pts/0    00:00:00 bash
   1793 pts/0    00:00:00 chromedriver
   1799 pts/0    00:00:01 chrome
   1804 pts/0    00:00:00 cat
   1805 pts/0    00:00:00 cat
   1807 pts/0    00:00:00 chrome
   1808 pts/0    00:00:00 chrome
   1842 pts/0    00:00:07 chrome
   1931 pts/0    00:00:00 ps
[qiita-bot@qiita-bot python]$ kill 1793
[qiita-bot@qiita-bot python]$ kill 1799
[qiita-bot@qiita-bot python]$ kill 1804
-bash: kill: (1804) - No such process
[qiita-bot@qiita-bot python]$ ls
config.py  main.py  qiita_bot
[qiita-bot@qiita-bot python]$ ps
    PID TTY          TIME CMD
   1206 pts/0    00:00:00 bash
   1934 pts/0    00:00:00 ps
[qiita-bot@qiita-bot python]$ python3 main.py

本格対応としては、main.pyでchromeを立ち上げた後に、プロセスの終了を行っていない為、
プロセスが残り続けている。

よって、下記のようにプロセスのquit()をmain.pyに処理を追記すれば、本格対応となる。

・・・(中略)・・・
driver.quit()
・・・(中略)・・・

結果は、下記の通りだ。

## ここでプログラムにdriver.quit()の処理を追記
[qiita-bot@qiita-bot python]$ sudo vim main.py 

## main.py実行後もchromeのプロセスが残っていないことがわかる。
[qiita-bot@qiita-bot python]$ ps
    PID TTY          TIME CMD
   1206 pts/0    00:00:00 bash
   2056 pts/0    00:00:00 ps
[qiita-bot@qiita-bot python]$ python3 main.py 
[qiita-bot@qiita-bot python]$ ps
    PID TTY          TIME CMD
   1206 pts/0    00:00:00 bash
   2134 pts/0    00:00:00 ps
[qiita-bot@qiita-bot python]$ python3 main.py 
[qiita-bot@qiita-bot python]$

 

コメント

タイトルとURLをコピーしました