04. Oil Price Analysis (Selenium 기초)

JERRY·2025년 2월 14일

EDA

목록 보기
10/27
post-thumbnail

Selenium 기초

기본 기능

  • 새로고침
    driver.refresh()
  • 뒤로가기
    driver.back()
  • 앞으로가기
    driver.forward()
  • 새로운 탭 열기
    driver.execute_script('window.open("url")')
  • 이동 가능한 탭 개수(오픈 탭 개수)
    len(driver.window_handles)
  • 탭 이동
    driver.switch_to.window(driver.window_handles[n])
  • 탭 닫기
    driver.close()
  • 전체 닫기
    driver.quit()
  • 클릭
    .click()
  • 텍스트 입력
    send_keys()

브라우저 창 크기 조절

  • 현재 브라우저 창 크기_1
    driver.get_window_size()
  • 현재 브라우저 창 크기_2
    driver.get_window_rect()
  • 화면 최대화
    driver.maximize_window()
  • 화면 최소화
    driver.minimize_window()
  • 브라우저 창 크기 조절
    (현재 보이는 화면에서만 가능)
    driver.set_window_size(x, y)

화면 스크롤

  • 스크롤 가능한 높이
    driver.execute_script('return document.body.scrollHeight')
  • 화면 스크롤_최상단
    driver.execute_script('window.scrollTo(0, 0);')
  • 화면 스크롤_최하단
    driver.execute_script('window.scrollTo(0, document.body.scrollHeight);')
  • 화면 스크롤_특정위치
    driver.execute_script('window.scrollTo(0, b);')
  • 화면 스크롤_특정태그
    some_tag = driver.find_element(By.CSS_SELECTOR, 'css_selector')
    action = ActionChains(driver)
    action.move_to_element(some_tag).perform()
  • 스크린샷
    driver.save_screenshot("./save_name.png")

검색

.click(),send_keys()를 이용하여 검색창에 검색어 입력 후 조회

예시1 Naver

  • CSS_SELECTOR
# Naver 메인 화면에서 검색
keyword = driver.find_element(By.CSS_SELECTOR, '#query')
keyword.send_keys('검색어_1')

search_btn = driver.find_element(By.CSS_SELECTOR, '#sform > fieldset > button')
search_btn.click()

# 검색 후 또 다른 검색 시
keywords = driver.find_element(By.CSS_SELECTOR, '#nx_query')
keywords.clear()
keywords.send_keys('검색어_2')

search_btn_ = driver.find_element(By.CSS_SELECTOR, '#nx_search_form > fieldset > button > i')
search_btn_.click()
  • Xpath
# Naver 메인 화면에서 검색
keyword = driver.find_element(By.XPATH, '//*[@id="query"]')
keyword.send_keys('검색어_1')

search_btn = driver.find_element(By.XPATH, '//*[@id="sform"]/fieldset/button')
search_btn.click()

# 검색 후 또 다른 검색 시
keywords = driver.find_element(By.XPATH, '//*[@id="nx_query"]')
keywords.clear()
keywords.send_keys('검색어_2')

search_btn_ = driver.find_element(By.XPATH, '//*[@id="nx_search_form"]/fieldset/button/i')
search_btn_.click()

예시2 pinkwink 블로그
검색창이 숨겨져 있는 경우

from selenium.webdriver import ActionChains

search_tag = driver.find_element(By.CSS_SELECTOR, '.search')
action = ActionChains(driver)
action.click(search_tag).perform()

keyword = driver.find_element(By.CSS_SELECTOR, '#header > div.search.on > input[type=text]')
keyword.send_keys('검색어')

search_btn = driver.find_element(By.CSS_SELECTOR, '#header > div.search.on > button')
search_btn.click()

현재 화면의 html 코드 가져오기

1
driver.page_source
2
from bs4 import BeautifulSoup

req = driver.page_source
soup = BeautifulSoup(req, "html.parser")
soup.select(".search")

0개의 댓글