강의

멘토링

커뮤니티

Inflearn Community Q&A

rjsdud44527231's profile image
rjsdud44527231

asked

Easy Python Advanced Crawling [Scrapy, Selenium, Headless Chrome]

Solving the Practice Problem 1: Headless Chrome and Selenium Crawling

셀레니움 버전 변경으로 인한 코드 변경

Resolved

Written on

·

1.3K

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()

 

혹시나 헤매시는 분들을 위해 끄적여 봅니다.

 

웹-크롤링bigdatascrapyselenium

Answer 1

1

funcoding님의 프로필 이미지
funcoding
Instructor

안녕하세요. 답변도우미입니다.

허걱, 본래는 해당 함수가 버전이 업데이트되면서, 새로운 함수를 제공하지만, 그렇다고 해서, 기존 함수가 동작을 안하는 경우는 극히 드물거든요. warning 메세지로 새로운 함수를 가이드하긴 하지만, 기존 함수를 동작안시키면, 관련 라이브러리를 쓴 모든 코드가 다 동작을 안하는 상황이 되기 때문에, 지원을 하는 것이 일반적입니다. 또 이런 경우가 파이썬 라이브러리에서 상당히 빈번하기도 하거든요. 그래서 아예 warning 메세지는 안보여주도록 하는 별도 명령도 있어서, 이 부분은 신경안쓰셔도 괜찮다고 전에 답변으로 설명을 드리기도 하였는데요.

오늘 갑자기 두 분께서 이야기를 하신 것을 보니, 아예 신규 버전에서는 해당 기존 함수를 못쓰게 바꾼 것 같습니다. 공지하고, 자료를 업데이트하도록 하겠습니다.

갑자기 코드가 동작을 안해서, 상당히 당황하셨을텐데, 이렇게 가이드까지 해주셔서 감사합니다.

감사합니다.

rjsdud44527231's profile image
rjsdud44527231

asked

Ask a question