IT/Python

셀레니움(selenium) webdriver 없이 작동하게 만드는 방법(크롬 드라이버)

조스톡 2022. 9. 10. 12:00
728x90
반응형

 

문제

 

 

셀레니움(Selenium)을 사용하기 위해서는 기존에는 드라이버(Driver)가 필요했고, 사용하려는 브라우저(Browser) 별로 다운로드해 프로그램과 같이 넣어줘야 했다.

 

한 번만 해도 된다면 크게 문제없겠지만, 브라우저가 업데이트되면 그때마다 새로운 버전의 드라이버를 필요로 하는 점이 문제였다.

 

수시로 드라이버를 다운로드해 줘야 한다는 번거로움과 새로 다운로드를 해주지 않으면 현재 브라우저와 버전이 달라져 오류가 발생하여 실행되지 않는다.

 

(브라우저 업데이트를 자동이 아닌 수동으로 바꾸는 방법도 있겠으나 보안 때문에 추천하지 않는다.)

 

from selenium import webdriver

options = webdriver.ChromeOptions()
browser = webdriver.Chrome('C:\chromedriver.exe', options=options)
browser.get("https://www.google.com/")
result_html = browser.page_source
 
 

아래는 브라우저별 드라이버를 필요로 하는 분들이 있을 거 같아 링크를 첨부했습니다.

 

그러나 이번 방법을 사용하면 필요가 없어질 것입니다.

 

 

webdriver-manager 라이브러리를 설치하고 아래처럼 코드를 수정하면 실행할 때마다 자동으로 드라이버를 다운로드해 selenium이 실행하게 된다. (https://pypi.org/project/webdriver-manager/)

 

크롬 드라이버를 기준으로 작성하였으나, 다른 브라우저를 사용한다면 위 링크를 참조하여 조금만 수정해 주면 된다.

 

pip install webdriver-manager
 
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

options = webdriver.ChromeOptions()
browser = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
browser.get("https://www.google.com/")
result_html = browser.page_source

 

 

추가 내용

 

한두 달 정도 사용하던 중 어떠한 이유로 webdriver-manager가 내 브라우저와 다른 버전의 드라이버를 가져오는 것을 발견할 수 있었다. 사용하던 크롬 브라우저 버전은 106.0.52249.119, webdriver-manager의 드라이버는 104 버전이었다.

 

webdriver-manager을 기존 3.8.3에서 3.8.4로 업그레이드해 주었더니 문제가 해결되었다.

 

pip install --upgrade webdriver-manager

 

728x90
반응형