-
카테고리
-
세부 분야
데이터 엔지니어링
-
해결 여부
해결됨
셀레니움 버전 변경으로 인한 코드 변경
22.06.29 23:38 작성 조회수 1.05k
0
06:00부에서 오류가 생겨서 찾아보았음.
기존 강의에서는
elems = driver.find_elements_by_id('begin')이 정상적으로 작동되었으나 셀레니움 버전 4.3.0(최신버전)부터는 "find_element_by_* & find_elements_by"를 제거하였다. 따라서 아래와 같은 코드를 쓰면 정상 작동될 것이다.
elems = driver.find_elements("id", "begin")
전체코드
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
# 드라이버 생성
# chromedriver 설치된 경로를 정확히 기재해야 함
chromedriver = 'C:\dev_python\Webdriver/chromedriver.exe' # 윈도우
#chromedriver = '/usr/local/Cellar/chromedriver/chromedriver' # 맥
driver = webdriver.Chrome(chromedriver)
# 크롤링할 사이트 호출
driver.get("https://davelee-fun.github.io/blog/crawl_html_css.html")
time.sleep(1)
# 여기에 작성해보세요
elems = driver.find_elements("id", "begin")
for index in elems:
print(index.text)
driver.quit()
혹시나 헤매시는 분들을 위해 끄적여 봅니다.
쉽게 처음하는 파이썬 고급 크롤링 [Scrapy, Selenium, Headless Chrome]
연습문제로 풀어보기1 : Headless Chrome 과 Selenium 크롤링
강의실 바로가기
답변을 작성해보세요.
1
잔재미코딩 DaveLee
지식공유자2022.06.30
안녕하세요. 답변도우미입니다.
허걱, 본래는 해당 함수가 버전이 업데이트되면서, 새로운 함수를 제공하지만, 그렇다고 해서, 기존 함수가 동작을 안하는 경우는 극히 드물거든요. warning 메세지로 새로운 함수를 가이드하긴 하지만, 기존 함수를 동작안시키면, 관련 라이브러리를 쓴 모든 코드가 다 동작을 안하는 상황이 되기 때문에, 지원을 하는 것이 일반적입니다. 또 이런 경우가 파이썬 라이브러리에서 상당히 빈번하기도 하거든요. 그래서 아예 warning 메세지는 안보여주도록 하는 별도 명령도 있어서, 이 부분은 신경안쓰셔도 괜찮다고 전에 답변으로 설명을 드리기도 하였는데요.
오늘 갑자기 두 분께서 이야기를 하신 것을 보니, 아예 신규 버전에서는 해당 기존 함수를 못쓰게 바꾼 것 같습니다. 공지하고, 자료를 업데이트하도록 하겠습니다.
갑자기 코드가 동작을 안해서, 상당히 당황하셨을텐데, 이렇게 가이드까지 해주셔서 감사합니다.
감사합니다.
답변 1