컴퓨터잡담

파이썬 셀레니움으로 네이버 증권의 종목 검색하여 특정항목 클릭하기

by nanumi posted May 30, 2021
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

파이썬 셀레니움으로 네이버 증권의 종목 검색하여 특정항목 클릭하기

크롬으로 네이버 증권 사이트를 열어보고

특정종목(문배철강)을 검색한 뒤 종목분석 메뉴를 클릭까지 해 보는 연습을 합니다. 

 

 

 

import time 
from selenium import webdriver 
# 크롬 웹드라이버를 이용하여 크롬을 실행
driver = webdriver.Chrome('C:\chromedriver.exe')
 
driver.get("https://finance.naver.com/item/main.nhn?code=006980"#네이버 증권(우성사료) 종목페이지로 이동 
time.sleep(2)
 
# html elemnt id가 stock_items 인 것을 찾습니다. 
inputElement = driver.find_element_by_id("stock_items"
time.sleep(2)
 
#종목 검색창에 문배철강을 입력 
inputElement.send_keys("문배철강"
time.sleep(2)
 
# 문배철강이라는 검색내용 요청을 서버측으로 보냅니다.
inputElement.submit()
time.sleep(2)
 
# 검색된 리스트 중 링크 텍스트에 '종목분석'이 포함된 것을 찾음 
continue_link = driver.find_element_by_partial_link_text('종목분석')
time.sleep(2)
 
#해당 링크를 클릭함 
continue_link.click() 
time.sleep(10)


 
driver.quit()
 

 

 

크롤링할때마다 사용하는 파이썬 셀레니움 패키지 (python selenium)

그중 가장 많이 사용하는 함수인 find_elemnt_by_, find_elements_by_ 사용법에 대해서 간단히 정리하고자 한다.

 

find_element_by, find_elements_by 차이점은?

find_element_by와 find_elements_by은 동일한 동작을 하지만, 아래와 같은 차이가 있다.

  • element 는 조건에 일치하는 가장 첫번째 요소를 반환
  • elements는 조건에 일치하는 모든 요소를 list 형태로 반환

즉, 한개만 return하냐, 모든 요소를 return 하냐의 차이다.

보통 해당 페이지에 조건에 만족하는 element가 유일하다는게 보장된다면 find_element_by를,

list중에서 한번 더 필터링을 거쳐서 찾아야 하거나, 해당 list 모두가 필요할 경우에는 find_elements_by를 사용한다.

 

파이썬 셀레니움에서 지원하는 find_element_by, find_elements_by

selenium의 webdriver에서 지원하는 find_elements_by_ 는 아래와 같다.

각 함수의 사용방법에 대해서 알아보자 (동작원리는 동일하기 때문에 편의상 find_elements_by 만 설명한다)

  • find_elements_by_tag_name
  • find_elements_by_xpath
  • find_elements_by_id
  • find_elements_by_class_name
  • find_elements_by_link_text
  • find_elements_by_partial_link_text
  • find_elements_by_css_selector

 

 

 

 

 

 

 

 

 

TAG •