728x90
Web Crawler Library
Python Library | 특징 |
|---|---|
| Selenium | 웹테스팅 도구 프레임웍 브라우저와 드라이버로 연결되어 브러우저에서 하는 작업들을 자동화 시킬수 있다. 웹인터페이스로 동작하며, phantomJS와 호환 가능 |
| PhantomJS | 웹테스팅 도구 프레임웍 , 화면이 존재 하지 않는 특징 웹표준을 따르는 Headless Webkit 자바스크립트를 사용 할 수 있으며 , DOM, CSS JSON, SVG등 컨트롤 가능 |
| Beautifulsoup | HTML 을 쉽게 파싱하여 사용 할 수 있는 특징 HTML과 XML 파일에서 데이터를 읽어내는 라이프러리 |
ChromeDriver
Selenium API
예제
import timefrom selenium import webdriverfrom bs4 import BeautifulSoupimport xlrdfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECpath = "C:/Users/skan/Downloads/chromedriver_win32/chromedriver.exe"driver = webdriver.Chrome(path)# 페이지 접속#driver.implicitly_wait(10)#페이지의 제목을 체크하여 'Google'에 제대로 접속했는지 확인한다#assert "Google" in driver.title#assert "Naver" in driver.title# Element FinduserIdElem = driver.find_element_by_id("userId")userPasswordElem = driver.find_element_by_id("userPw")# Value SettinguserIdElem.send_keys("userId")userPasswordElem.send_keys("password")# page submitform = driver.find_element_by_id('frm')form.submit();# Report page 이동# driver.implicitly_wait(10) # iframe 접속driver.switch_to.frame(driver.find_element_by_tag_name('iframe'))try: element = WebDriverWait(driver, 3).until(EC.presence_of_element_located((By.ID, "iframeReport")))except Exception as ex: print('element = ', ex)tableElem = driver.find_element_by_id('grid')tbodyElem = tableElem.find_elements_by_tag_name('tbody')for tbodyData in tbodyElem: print('tbody ', tbodyData.text)