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 |