본문 바로가기
ML&DATA/data

Selenium

by sun__ 2020. 8. 12.

https://beomi.github.io/2017/02/27/HowToMakeWebCrawler-With-Selenium/

위 블로그 참고했음을 밝힙니다.

 


beautifulsoup처럼 웹에 있는 데이터를 가져올 때 사용한다.

 

하지만 beautifulsoup와는 다르게, 크롬 등의 브라우저를 직접 제어할 수 있다.

 

브라우저를 직접 제어할 수 있기 때문에, js등으로 뒤늦게 들어오는 컨텐츠들도 가져올 수 있다.

 

즉, 눈에 보이는 모든 데이터를 가져올 수 있다.

 

사용하고자하는 브라우저의 드라이버를 다운받아 사용해야 한다.

 


 

*get

크롬드라이버를 가져와서 get 메서드로 해당 페이지를 열 수 있다.

from selenium import webdriver

driver = webdriver.Chrome('../driver/chromedriver')
driver.get('http://naver.com')

 

*save_screenshot

현재 드라이버가 보는 페이지의 스샷을 찍어준다.

driver.save_screenshot('../images/001.jpg')

 

 

* find_element_by_id

태그에 달린 id를 찾아서 셀레니움의 WebElement 타입을 반환한다.

 

WebElement객체는 send_keys메서드로 입력값을 넘겨줄 수 있다.

elem_login = driver2.find_element_by_id("id")
elem_login.clear()		//현재 id태그의 부분의 입력칸을 비운다.
elem_login.send_keys("lsn1106")

 

* find_element_by_xpath

xpath란 보이는 웹 페이지 내용을 XML 언어의 형식으로 보여주는 기법으로, 웹 페이지의 모든 내용을 XPath로 접근 가능한 위치 정보를 알 수 있다. 개발자도구에서 얻을 수 있다.

 

click메서드로 해당 위치를 클릭할 수 있다.

xpath = """//*[@id="log.login"]"""
driver.find_element_by_xpath(xpath).click()

 

'ML&DATA > data' 카테고리의 다른 글

BeautifulSoup  (0) 2020.08.08
folium  (0) 2020.07.30
seaborn  (0) 2020.07.30