안녕하세요. 인코딩을 선택하는 것이 좋습니다.
오늘은 파이썬으로 웹 스크래핑을 할 때 최신 버전의 크롬 드라이버를 적용하는 방법에 대해 설명하겠습니다.
사용자만 사용하도록 코드를 작성했다면 경우에 따라 처리가 가능하지만 GUI 실행 파일이나 EXE 실행 파일로 제3자에게 배포하는 경우 항상 최신 버전의 크롬 드라이버를 Coding Syntax Suggestion 설정으로
인코딩 소스는 다음과 같습니다.
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.support.ui import WebDriverWait
options = webdriver.ChromeOptions()
service = Service(executable_path=ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=options)
이 코드를 사용하면 크롬 드라이버의 통과경로를 입력할 필요가 없고 최신 버전의 드라이버를 설치해 브라우저를 실행할 수 있어 동적 페이지의 웹 크롤링에 널리 쓰인다.
네이버에 정상적으로 접속이 가능한지 소스코드를 추가해 보자.
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.support.ui import WebDriverWait
options = webdriver.ChromeOptions()
service = Service(executable_path=ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=options)
url="https://www.naver.com/"
wait = WebDriverWait(driver, 5)
driver.get(url=url)

이렇게 네이버에 정상적으로 접속이 되었는지 확인할 수 있습니다.
그런데 간혹 이 코드를 사용해도 일부 PC 프로그램은 정상인데 웹페이지 접속 시 갑자기 오류가 발생하는 경우가 있습니다.
이때 나타나는 대부분의 오류 메시지는 다음과 같습니다.
selenium.common.exceptions.SessionNotCreatedException: 메시지: 세션이 생성되지 않음: 이 버전의 ChromeDriver는 Chrome 버전 107만 지원합니다.
현재 브라우저 버전은 106.0.5249.119이고 바이너리 경로는 C:\Program Files (x86)\Google\Chrome\Application\chrome.exe입니다.
대부분의 경우 크롬 드라이버가 업데이트되지 않는 경우입니다.
프로그램은 최신 버전을 사용하고 있는데, 이 문제의 원인은 PC의 크롬 브라우저가 최신 버전의 드라이버를 설치하지 않았기 때문입니다.
(대부분의 PC에서 크롬 웹 브라우저용 드라이버는 자동으로 최신 버전으로 업데이트됩니다.
)
이 경우 오류가 발생한 PC의 크롬 브라우저에서 설정을 입력(우측 상단 점 세 개 클릭 후 설정 클릭) 후 우측 하단의 (크롬 정보)를 클릭하면 자동으로 업데이트 됩니다.
업데이트가 완료된 후 브라우저를 닫고 프로그램을 실행하면 대부분의 문제가 해결됩니다.

위의 방법에서는 Python을 사용하여 웹 페이지를 크롤링할 때 최신 버전의 Chrome 드라이버를 적용하는 방법과 오류가 있을 때 해결하는 방법에 대해 설명하였으니 행복한 코딩 생활 되시기 바랍니다.