티스토리 뷰
이전 발행글
2023.08.01 - [Python/Scraping] - [Python Selenium] Chrome version 115 대응 Chromedriver 설치
2023.11.09 - [Python/Scraping] - [Python selenuim] 파이썬 스크래핑 - ChromeDriver 버전오류
ISSUE
잘 작동하던 코드가 어느 날 작동하지 않는다면
chromedriver 버전을 chrome 버전과 맞추어 주면 해결이 되었다.
하지만 최근에는 늘 하던대로 chrome 버전에 맞는 chromedriver 버전을 다운로드하여도 해결이 되지 않았다.
chrome 버전은 121.0.6167.161 이다.
chromedriver 버전은 121.0.6167.85 이다.
몇일을 고생했다.
chrome을 다운그레이드하여 chrome에 맞는 chormedriver 설치를 시도하였지만 이 또한 쉬운 일이 아니였다. 구글은 이전 버전을 공식적으로 제공해 주고 있지 않고 있다. chrome 의 과거 버전을 제공하는 site가 있긴 하지만 chromedriver 버전은 찾는 것은 쉬운일이 아니였다.
WebDriver Manager
해결방법은 간단했다.
selenium 버전 4.6이후부터는 selenium manager를 포함하고 있다.
Selenium WebDriver를 사용할 때, 브라우저 드라이버(예: ChromeDriver, GeckoDriver 등)의 설치와 관리는 사용자에게 맡겨져 있다. 수동으로 버전을 관리하는 것은 때때로 버전 호환성 문제, 드라이버 업데이트의 필요성 등으로 번거로움을 초래하기도 한다. 이러한 문제를 해결하기 위해, 여러 도구와 라이브러리가 개발되었는데, 이 중 하나가 "WebDriver Manager"이다. selenium 버전 4.6이후부터는 "WebDriver Manager"를 포함하고 있다.
WebDriver Manager는 Selenium WebDriver의 드라이버를 자동으로 관리해 주는 유틸리티이다. 이는 Python, Java 등 여러 언어로 구현되어 있으며, 사용자가 직접 드라이버를 다운로드하고 경로를 설정하는 번거로움 없이, 필요한 브라우저 드라이버를 자동으로 다운로드하고 설정해 준다. WebDriver Manager는 실행 중인 브라우저의 버전을 자동으로 감지하고, 해당하는 드라이버를 다운로드하여 Selenium 스크립트가 즉시 사용할 수 있다.
주요기능은 아래와 같다.
- 자동 드라이버 다운로드: 실행 중인 브라우저의 버전에 맞는 드라이버를 자동으로 다운로드한다.
- 버전 관리: 다양한 버전의 드라이버를 관리하고, 필요에 따라 특정 버전을 사용할 수 있다.
- 쉬운 통합: Selenium 스크립트와 쉽게 통합되어, 코드 내에서 몇 줄만으로 드라이버 관리를 자동화할 수 있다.
- 크로스 플랫폼 지원: Windows, macOS, Linux 등 다양한 운영 체제에서 사용할 수 있다.
Selenium Manager 는 Selenium에 필요한 드라이버 (chromedriver 등) 를 사용할 수 없을 때 해당 드라이버를 자동으로 검색, 다운로드를 해주는데 이것은 선택사항이다. 따라서 사용자가 드라이버는 수동으로 설치 및 사용하고자 한다면 수동으로 사용 가능하다.
자세한 사항은 아래 문서에서 참고하면 된다.
https://www.selenium.dev/documentation/selenium_manager/
Solution
위에서 언급한 것처럼 Selenium Manager는 적정한 드라이버를 찾지 못했을 경우 사용된다.
따라서 수동으로 드라이버 버전을 업데이트 하였지만 어떤 이유에서인지 스크립트가 작동하지 않았다.
해결방법은 Selenium Manager에게 버전관리를 맡기면 된다.
나의 경우에는 Selenium 버전 업데이트 및 드라이버 path에서 chromedriver를 삭제만 해주었는데도 이전처럼 정상적으로 스크립트 작동하였다. Selenium Manager가 필요한 드라이버가 없으니 직접 드라이버를 검색 및 다운로드 하는 것이다.
아래는 Python 에서의 사용예이다.
# 필요한 패키지를 설치합니다.
# pip install selenium webdriver-manager
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
# ChromeDriverManager를 통해 ChromeDriver를 자동으로 설치하고, 경로를 설정합니다.
driver = webdriver.Chrome(ChromeDriverManager().install())
# 이제 Selenium 스크립트를 작성하고 사용할 수 있습니다.
driver.get("https://www.google.com")
print(driver.title)
# 브라우저를 닫습니다.
driver.quit()
결론
이제부터 드라이버 버전관리는 Selenium Manager에게 맡기면 된다.
'Coding Study > Scraping' 카테고리의 다른 글
- Total
- Today
- Yesterday
- chatGPT
- OpenAI
- GitHub
- 고양장항신혼희망타운
- 알리바바
- IMPORTRANGE
- 무주택세대구성원
- 버전제어
- chrome버전
- This version of ChromeDriver only supports Chrome version
- 주택청약제도
- chromedriver버전오류
- 구글시트
- 소스제어
- 티스토리챌린지
- scraping
- 오블완
- 주택청약
- Git
- Selenium
- Python
- kc인증
- vscode 구글시트 연동
- Google sheet
- 청약통장
- 챗gpt
- VSCode
- 구글API
- 청약제도
- 스크래핑
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |