basic/python

[python 06] 크롤링(3) - Selenium 셀레늄

못지(Motji) 2021. 8. 25. 15:32

💡

• 정적 웹페이지
urllib + bs
requests + bs
• 동적 웹페이지
Selenium + chromedriver

동적페이지 크롤링

Selenium 셀레늄

브라우저를 제어해서 크롤링하는 방법
# 라이브러리 설치
selenium : python interpreter 에서 설치 (또는 pip install selenium)
chromedriver : 크롬브라우저 버전확인 (92.0.4515.159)

 

☑ selenium으로 브라우저 DOM에 접근하는 함수들

▪ 리턴타입 : 단일객체 (cf. bs find())

∙ find_element_by_id

∙ find_element_by_class_name

∙ find_element_by_css_selector
∙ find_element_by_xpath : xml 문서 접근하기 위한 문법

∙ find_element_by_name

▪ 리턴타입 : 리스트 (find_all())

∙ find_elements_by_id

∙ find_elements_by_class_name

∙ find_elements_by_css_selector
∙ find_elements_by_xpath : xml 문서 접근하기 위한 문법

∙ find_elements_by_name

 

💡 xpath

/ : 절대경로

// : 문서내에서 검색

Ex)

//@href : href 속성이 있는 모든 태그

//a[@href="http://google.com] : a태그의 href 태그의 속성값이 구글인 것 찾기

(//a)[3] : 문서에서 세번째 a태그

//table/tr/* : 모든 테이블에서 모든 자식 tr 태그 선택

//div[@class="abc"] " div 태그에서 class 속성이 abc인것 찾기

//div[@id="abc"] div 태그에서 id 속성값이 abc인것 찾기