피드로 돌아가기
새로워지기·마흔의 생활코딩

간만에 셀레니움

NS
normalstory
표지 이미지

 
날씨 데이터를 수집할 일이 생겼다.
산업에서 사용되는 날씨 데이터의 종류? 규격은 생각보다 다양하다. 그 중 epw라는 규격이 있음을 알게 되었다. 상당히 까다롭지만 이러한 규격으로 98개국 3000개 도시에 대한 날씨 데이터를 무료로 제공하는 곳이 있다. 하지만 이곳은 동적 페이지로 구성되어 있었다.
 
그렇게 기억 저 편에 고히? 잠들어있던 셀레니움을 다시 꺼내 볼 기회를 갖게 되었다.
이 과정에서 이전에는 몰랐던( 무작정 따라했거나, 알고 있던 방식으로만 했거나) XPath(XML Path Language)를 사용하게 되었다.

dom script에서 id, classs 또는 tag기반으로 selecting하지 않고 마치 상대/절대 좌표(x,y축)위치를 기반으로 selecting하는 정말이지 Path라는 키워드가 딱- 어울리는 느낌이었다.
덕분에 동적 페이지에서; 매번 갯수와 순서가 바뀌는 목록에서; 특정 항목만(목록의 이름이 epw인 a태그 element) 추출하는 과정에서도 반복문을 돌릴 필요가 없이 원하는 요소를 지정할 수 있다.
그리고 셀레니움이 이전과 달리 매우 매우 많이 업데이트 되었다. 평소에 사용하는 크롬 브라우저가 11.5이상이라면 별도의 프로그램 설치도 필요없다.
 
 
 
 
 
주요 내용 : 

1. 의존성(패키지) 관리
    `pip install selenium`
    `pip install webdriver-manager`
2. 기본 세팅(import)

import os
import requests
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

# Set up driver and load the webpage
chrome_path = "C:/Users/userName/chromedriver.exe"
driver = webdriver.Chrome()
page_url = "스크래핑하려는 타깃 페이지 url"
driver.get(page_url)

 
3. 동적 페이지에서; 매번 갯수와 순서가 바뀌는 목록에서; 특정 항목만(목록의 이름이 epw인 a태그 element) 선택하기 
1) 언어의 문장 구조가 XPath 방식(문법)을 사용하고 있지만 사용하는 방식(방법은) Dom script와 유사한 맥락의 방식 예 

download_button = driver.find_element(By.XPATH, '//a[@class="내가 원하는; a Tag;에 선언되어 있는 class이름"]')

 2) 언어의 문장 구조가 XPath스러운 예

download_button = driver.find_element(By.PARTIAL_LINK_TEXT, 'epw')

 
 
 
 
참고 자료 : 어지간한 것은 아래 링크에 다 나와있는 것 같다. 
     XPATH란? 셀레니움(Sellenium) XPath로 쉽게 요소 선택하기!
     파이썬 셀레니움 사용법, 특정 요소를 선택하는 방법은?!
     01. selenium 4    
 
 
selenium :  https://www.selenium.dev/documentation/webdriver/

WebDriver

WebDriver drives a browser natively, learn more about it.

www.selenium.dev

 

친절한 찰쓰씨
글쓴이
친절한 찰쓰씨
친절한 찰쓰씨 · 일상 UX 디자이너
기획·디자인·단상을 조용히 기록합니다.
작가 페이지에서 더 보기

이어서 읽기

새로워지기

꾸준히, 오래, 지치지 않고

Mar 31, 2026·8
새로워지기

테크 라이프 발란스

Feb 7, 2026·3
새로워지기

휴탈리티 박정렬

Feb 7, 2026·11