프로그래밍/2022

파이썬 selenium 4(셀레니움4) 최신 버전 find_element 사용법 마스터

김플 2023. 2. 7. 17:47
반응형

파이썬 셀레니움(selenium)은 웹페이지 자동화, 동적 페이지 크롤링, 스크래핑을 할 때 주로 사용합니다.

이 강의에서는 selenium3에서 selenium4로 버전업되며 바뀐 find_element 문법에 대해 설명합니다.

셀레니움3에서는 아래의 방법으로 html 요소를 찾았다면
driver.find_element_by_class_name("")
driver.find_element_by_id("")
driver.find_element_by_css_selector("")
driver.find_element_by_name("")
driver.find_element_by_tag_name("")
driver.find_element_by_xpath("")
driver.find_element_by_link_text("")
driver.find_element_by_partial_link_text("")
(복수형 driver.find_elements_by~~)

셀레니움4에서는
driver.find_element(By.CLASS_NAME, "")
driver.find_element(By.ID, "")
driver.find_element(By.CSS_SELECTOR, "")
driver.find_element(By.NAME, "")
driver.find_element(By.TAG_NAME, "")
driver.find_element(By.XPATH, "")
driver.find_element(By.LINK_TEXT, "")
driver.find_element(By.PARTIAL_LINK_TEXT, "")
(복수형 driver.find_elements(By.~~, "")
이렇게 바뀌었습니다.

 

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import time

options = Options()
options.add_experimental_option("detach", True)
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=options)

url = "https://naver.com"

driver.get(url)

time.sleep(1)


"""
<input id="query" name="query" type="text" title="검색어 입력" maxlength="255" class="input_text" tabindex="1" accesskey="s" style="ime-mode:active;" autocomplete="off" placeholder="검색어를 입력해 주세요." onclick="document.getElementById('fbm').value=1;" value="" data-atcmp-element="">
"""

driver.find_element(By.CLASS_NAME, "input_text").send_keys("블랙핑크")
time.sleep(1)

driver.find_element(By.ID, "query").send_keys("뉴진스")
time.sleep(1)

driver.find_element(By.NAME, "query").send_keys("트와이스")
time.sleep(1)

driver.find_element(By.CSS_SELECTOR, "#query").send_keys("에스파")
time.sleep(1)

driver.find_element(By.XPATH, '//*[@name="query"]').send_keys("에스파")
time.sleep(1)

driver.find_element(By.LINK_TEXT, "쇼핑LIVE").click()

driver.find_element(By.PARTIAL_LINK_TEXT, "핑LI").click()

navs = driver.find_elements(By.CSS_SELECTOR, ".nav")

for nav in navs:
    print(nav.get_attribute("outerHTML"))
    print()

이 강의에서 사용하는 파이썬은 3.10.6 버전이며 편집기는 vscode입니다.

자세한 사용법은 아래 강의 영상을 참고 바랍니다.
https://youtu.be/qhy8I4ChCuw

 

반응형

▼웹크롤링&자동화를 제대로 배워보고 싶다면?▼

 

실습으로 끝장내는 파이썬 웹 크롤링과 웹 페이지 자동화 - 인프런 | 강의

쉬운 설명과 다양한 실습으로 어떠한 사이트라도 원하는 대로 파이썬(Python) 웹 크롤링을 할 수 있게 됩니다., - 강의 소개 | 인프런...

www.inflearn.com