크롬브라우저를 사용해서 Selenium으로 크롤링을 진행할 경우 ChromeDriver가 크롬브라우저와 버전이 맞지 않아 동작을 하지 않는 경우가 있다.

대부분 사용자들은 크롬브라우저의 업데이트 기능을 중지시키지 않기 때문에 나도 모르게 업데이트가 진행되어 있을 수 있다.

이 경우 Selenium으로 크롤링을 진행할 때 Python에서 크롬브라우저 관련 오류가 발생한다.

 

이를 방지하기 위해서 설치된 크롬브라우저의 버전에 맞게 ChromeDriver를 자동으로 다운로드하거나 업데이트해주는 Webdriver_manager 라이브러리를 소개한다.

 

Webdriver-manager 사용방법

 

1. 모듈 설치

pip install webdriver-manager

 

2. 사용방법

Selenium 3버전과 4버전의 사용방법이 다르다.

Selenium 3

# selenium 3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

chrome_options = webdriver.ChromeOptions()
driver = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options)

driver.get('https://www.google.com')

Selenium 4

# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

chrome_options = webdriver.ChromeOptions()
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

driver.get('https://www.google.com')

 

3. 참고사항

ChromeDriver로 크롤링을 할 때 간혹 ChromeDriver 프로세스가 백그라운드에서 종료가 안되서 오류가 발생하는 경우가 있기 때문에 os 모듈을 통해 강제 종료를 넣어주면 도움이 된다.

import os
import time

try:
    os.system("taskkill /f /im chromedriver.exe /t")
    print(f"크롬드라이버 강제 종료 성공")
except Exception as e:
    print(f"크롬드라이버 강제 종료 실패")

time.sleep(1)

 

4. 전체코드

본인은 Selenium3를 사용하기에 Selenium3를 기준으로 코드를 작성하였다.

import os
import time
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

try:
    os.system("taskkill /f /im chromedriver.exe /t")
    print(f"크롬드라이버 강제 종료 성공")
except Exception as e:
    print(f"크롬드라이버 강제 종료 실패")

time.sleep(1)

chrome_options = webdriver.ChromeOptions()
driver = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options)

driver.get('https://www.google.com')

+ Recent posts