
【유가(Oil Price) 분석】에 사용된 라이브러리
웹 브라우저를 원격 조작하는 도구이다.
자동으로 URL을 열고 클릭 등을 가능하게 한다.
스크롤, 문자 입력, 화면 캡처 등등 다양한 기능을 가지고 있다.
웹 브라우저를 컨트롤하기 위해서 Selenium Client를 사용한다.
Selenium Client는 WebDriver라는 공통 인터페이스(Common interface)와 각 브라우저 타입별(Chrome, IE, FireFox 등)로 하나씩 있는 Browser Driver로 구성되어 있다.
webdriver.Chrome()는 Selenium에서 Chrome 브라우저를 제어하기 위한 WebDriver를 생성하는 메서드이다.
크롬 브라우저와 동일한 버전의 chromedriver를 다운로드 받는다.
WebDriver의 get()메서드를 사용하여 특정 URL의 웹 페이지를 연다.
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
// Chrome WebDriver의 실행 파일 경로
chrome_driver_path = "../chromedriver-win64/chromedriver.exe"
// Chrome WebDriver 인스턴스 생성 및 실행 파일 경로 지정
service = Service(executable_path=chrome_driver_path)
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(service=service, options=options)
// get() 함수로 접근하려는 웹 주소 지정
driver.get("https://www.naver.com")
// 창 닫기
driver.quit()
WebDriver를 사용하여 다양한 동작을 수행할 수 있다.
화면 최대화
driver.maximize_window()
driver.minimize_window()
driver.get_window_rect()
driver.get_window_size()
driver.set_window_size(1920, 1080)
driver.refresh()
driver.back()
driver.forward()
driver.execute_script('window.open("https://www.naver.com");')
len(driver.window_handles)
driver.switch_to.window(driver.window_handles[0])
driver.close()
// 상단으로 이동
driver.execute_script("window.scrollTo(0, 0)")
// 하단으로 이동
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
driver.save_screenshot("./screenshot.png")
요소를 찾지 못하면 NoSuchElementException이 발생한다.
find_element() or find_elements()
from selenium.webdriver.common.by import By
driver.find_element(By.CSS_SELECTOR, "#content > div > ul > li:nth-child(1)")

keyword = driver.find_element(By.CSS_SELECTOR, "#query")
keyword.send_keys("파이썬")
search_btn = driver.find_element(By.CSS_SELECTOR, "#sform > fieldset > button")
search_btn.click()