새소식

반응형
파이썬/크롤링

Selenium (셀레니움) 웹 요소, 속성값 찾기

  • -
반응형

<ul id="food">
	<li class="steak"><span>스테이크</span></li>
   	<li class="care"><span>카레</span></li>
   	<li class="pig"><span>삼겹살</span></li>
</ul>

<ul id="fruits">
	<li class="apple"><span>사과</span></li>
   	<li class="orange"><span>오렌지</span></li>
   	<li class="grape"><span>포도</span></li>
</ul>

카레 찾기

첫번째 일치 요소 찾는 방법

food_el = driver.find_element(By.CLASS_NAME, "care")

범위를  지정해서 요소 찾기

food = driver.find_element(By.ID, "food")
food_el = food.find_element(By.CLASS_NAME, "care")

셀렉터로 찾기

food_el = driver.find_element(By.CSS_SELECTOR,"#food .care")

일치하는 모든 요소 가져오기

foodname = driver.find_elements(By.TAG_NAME, "li")

example - 네이버쇼핑 장어검색해서 li 요소 모두 가져오기

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.chrome()

driver.get("https://search.shopping.naver.com/search/all?frm=NVSHATC&origQuery=%EC%9E%A5%EC%96%B4")

shop_name = driver.find_elements(By.TAG_NAME, 'li')

for e in shop_name:
    print(e.text)

요소내에서 요소 찾기 - ul  요소 내에서 li 찾아서 출력

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.chrome()

driver.get("https://search.shopping.naver.com/search/all?frm=NVSHATC&origQuery=%EC%9E%A5%EC%96%B4")

shop = driver.find_elements(By.TAG_NAME, 'ul')

shop_names = shop.find_elements(By.TAG_NAME, 'li')

for e in shop_names:
    print(e.text)

요소추적하기 - 상품제목  추적하기

 from selenium import webdriver
  from selenium.webdriver.common.by import By

  driver = webdriver.Chrome()
  driver.get("https://search.shopping.naver.com/search/all?frm=NVSHATC&origQuery=%EC%9E%A5%EC%96%B4")
  driver.find_element(By.CSS_SELECTOR, '[class="imgList_list_item__zYg0L"]').send_keys("webElement")

  title_data = driver.switch_to.active_element.get_attribute("a")
  print(title_data)

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.