바닥코딩

selenium(셀레늄) 본문

파이썬 데이터 크롤링

selenium(셀레늄)

개발공부개발공부 2020. 1. 3. 15:59

selenium(셀레늄)?

selenium 은 웹을 테스트 하는데 사용하는 프레임워크로 webdriver라는 API를 통해 운영체제의 설치된 chrome 브라우저를 제어합니다. 즉 브라우저를 직접 동작시칼 수 있기 때문에 JavaScript를 이용해 비동기적으로 혹은 뒤늦게 불러와 지는 컨텐츠를 가져올 수 있습니다.

  우리가 앞서 진행했던 크롤링은 동적인 HTML 이나  network 분석을 통해 전달되는 JSON 데이터를 parsing한 크롤링 이였습니다. 물론 개발자들이 많이 사용하는 API들이나 공공데이터 포털등에서는 이러한 자료를 쉽게 구할 수 있지만 그 외 동적으로 구조가 바뀌는 사이트나 정적 사이트가 아닐경우의 크롤링은 제한적인 요소를 많이 포합합니다. 이에 selenuim은 해답을 제시합니다.

 

크롬 드리이버를 다운로드받기 위해서는 https://sites.google.com/a/chromium.org/chromedriver/downloads        

 

Downloads - ChromeDriver - WebDriver for Chrome

WebDriver for Chrome

sites.google.com

해당 사이트에 접속 후 chrome 브라우저 버전에 맞는 드라이버를 설치합니다

selenium element 접근 메소드에 대해 살짝 알아보면

  • find_element_by_name('html_name') ---html 이름을 통해 접근 
  • find_element_by_id('html_id') --- id 값과 일치하는 항목에 대해 접근
  • find_element_by_xpath('xpath' ) --- xapth의 경로가 일치하는 항목에 대한 접근 
  • find_element_by_class_name('class_name') --- class_name이 일치하는 항목에 대한 접근 

아래는 구글에서 어드벤텍을 자동으로 검색해주는 프로그램의 전문이다

1
2
3
4
5
6
7
8
9
10
11
12
from selenium import webdriver
from time import sleep
 
 executable_path = '../python/chromedriver.exe'
)
 
driver.find_element_by_xpath('//*[@id="tsf"]/div[2]/div[1]/div[1]/div/div[2]/input').send_keys("어드벤텍")
driver.find_element_by_class_name('gNO89b').click() 
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

 

'파이썬 데이터 크롤링' 카테고리의 다른 글

csv 파일 데이터 셋 받아오기 및 시각화  (0) 2020.01.04
pandas를 이용한 데이터 시각화  (0) 2020.01.03
JSON  (1) 2020.01.03
Beautifulsoup를 통해 HTML 파싱하기  (0) 2020.01.03
데이터 크롤링  (0) 2020.01.03