본문 바로가기
Cording/Pyhon_크롤링

Python Selenium] 크롬 웹드라이버 Chrome Webdriver 설정 / 오류 해결

by €€£¥ 2022. 12. 1.

 

1. 이건 이미 올드해진 코딩이야. 

 

Selenium을 사용해서 크롬 브라우저를 컨트롤 하기 위해서는 크롬 웹드라이버 Chrome Webdriver를 사용해야 한다는 건

아마 이 글을 보는 사람들은 이미 알고 있는 내용 일 거야. 

 

어떤 시점에 Selenium 을 학습했는지는 모르지만, 혹시 Selenium 버전이 4.xx 대 이전에 학습을 했다면

Chrome Webdriver를 다운받아서 크롬 웹드라이버를 설정해주는 코드를 작성하는 방법을 익혔을 거야. 

밑의 페이지 내용 처럼 말이지. 

 

 

Samla's Study

News & Issues about Economy // About Chess

getitall.tistory.com

 

 

 

2. executable_path has been deprecated, please pass in a Service object  오류 해결 방법

 

일단 셀레니움 4.xx 버전 이전에서는 하기 처럼 크롬 웹드라이버를 설치하고 불러오는 코드를 작성했을거야.

 

!pip install selenium
from selenium import webdriver
driver = webdriver.Chrome('./'크롬웹드라이버경로'chromedriver.exe')

 

그리고 상기 코드를 작성하고 실행하면 하기 오류가 뜰거야.

현재 202년 11월 시점에서는 오류가 뜨더라도 코드가 실행은 되긴 하지만,

오류 메시지가 뜨는 건 영~ 거슬리는 일이지. 또, 시간이 지나면 아예 지원이 되지 않는 상태가 될 거니까 나중을 위해서라도 코드를 수정하는 게 좋겠지?

executable_path has been deprecated, please pass in a Service object

에러 메시지 내용은 대충 이런거야.


이 코드는 앞으로는 사용되지 않는 코드가 될거니까
"Service" 오브젝트를 통하는 새로운 방식으로 코드를 작성해라. 

 

그럼 이 오류 해결 방법을 찾아서 바꿔야 겠지. 어떻게 하면 좋을까? 
방법은 두가지가 있어. 

 

첫번째. Selenium을 코드 버전에 맞춰서 재설치 하는 방법

셀레니움 4.xx 버전부터 변경되는 내용이니까 지금 설치된 셀레니움을 지우고 3.xx 버전으로 다운그레이드 시켜주면 되겠지.


코드는 이러해.  현재 설치된 4.xx 버전의 셀레니움을 지우고 셀레니움 3.14.1 버전을 재설치하는 방법이지. 

pip unistall selenium
pip install selenium==3.14.1

이렇게 하면 지금 현재 코드를 수정하지 않아도 작동이 되니까 간단한 해결책이지만, 낮은 버전의 셀레니움을 사용해야 한다는 단점이 있지. 

 

두번째. Selenium 최신 버전인 4.xx 버전에서 지원하는 방법으로 코드를 수정

어쨌든 셀레니움도 이래저래 개선이 되면서 버전이 올라가는 거니 최신의 버전을 사용하고 싶잖아?

그럼 최신 버전이 지원하는 방법대로 코드를 수정해주는게 더 좋은 선택이지 않을까?

 

심지어 이 방법을 추천하는 건 더이상 크롬 웹드라이버를 다운받아서 설치하지 않아도 되고, 

크롬 브라우저의 버전이 변경될 때마다 크롬 웹드라이버를 업데이트 해주지 않아도 된다는 거야!

관리가 엄청 편해지는 방법이라는 거지! 


이 방법을 위한 코드는 아래와 같아. 추가로 모듈도 설치해주고 import 해주면 되지.

pip install selenium
pip install webdriver_manager

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

 

나도 코알못이라 하나 하나 공부하면서 작성하는 거라 부족한 부분이 있겠지만,

나처럼 해메이는 코알못들에게 도움이 되었음 좋겠어!!

 

 

댓글