반응형
열심히 크롤링 프로그램을 만들었습니다.
근데... 그런데....
자꾸 동작을 안하고 종료가 됩니다.
뭐...뭐지???
내용을 읽어보면 The ChromeDriver Version cannot be discovered. 로 표시되고 프로그램은 exception error로 꺼져있습니다.
처음에 코드를 짤때 Chrome Browser의 Version은 114.0.5735 버전으로 시작을 했는데 Error창에 114버전으로 실행해서 꺼졌다라고 나왔습니다. 이것은 프로그램 작성시 Chrome Driver를 다운로드 하여 진행하는데 Driver의 버전과 Browser의 버전이 일치해야만 정상동작합니다.
하지만 문제는 Chrome Browser는 자동 업데이트를 지원하므로 115, 116으로 점점 업데이트를 하고 114버전과는 멀어져갑니다.
이때부터 크롬을 지우고 114버전을 재설치하고 업데이트를 막아도.... 자연스럽게 크롬은 최신버전으로 업데이트가 됩니다.
따라서! 방법을 바꾸어 Chrome Driver Manager가 최신으로 업데이트 되도록 하면 문제가 해결됩니다.
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import requests
from bs4 import BeautifulSoup
from selenium.common.exceptions import UnexpectedAlertPresentException, NoAlertPresentException, NoSuchElementException
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"])
# Use ChromeDriverManager to install and get the path of the ChromeDriver executable
chrome_driver_path = ChromeDriverManager().install()
# Create the Chrome WebDriver instance using the path obtained from ChromeDriverManager
driver = webdriver.Chrome(executable_path=chrome_driver_path, options=chrome_options)
일반적으로 크롤링을 위한 기본 코드는 위의 샘플에서 시작하면 크롬 업데이트의 방해를 벗어나실수 있을 것입니다.
반응형
'Engineering > Python' 카테고리의 다른 글
[python] docstring(주석)을 넣어 코드를 쉽게 봅시다. ( #, ''') (1) | 2024.04.28 |
---|---|
[python] Href는 Class가 아니다.(beautifulsoup 찾기) (0) | 2024.03.17 |
[Python] IndexError: list index out of range (0) | 2023.05.27 |
[python] 실시간 환율 가져오기 (feat. forex-python & xpath) (1) | 2023.05.05 |
[python] 텔레그램봇을 채널에 넣어 알림 보내기(w/ indexbriefing) (2) | 2023.01.27 |
댓글