Programming/QA
셀레니움(Selenium) 크롤링?
디아쿠
2024. 12. 11. 12:43
과거 RPA 개발 직무에서 일을 하면서 Selenium을 활용해 본 적이 있다.
Selenium은 웹 자동화 도구이며, 이를 활용하여 웹 페이지의 데이터를 추출하거나 테스트를 자동화하는 작업을 말한다.
Selenium은 브라우저를 자동으로 제어할 수 있는 기능을 제공하며, 이를 통해 사용자가 브라우저에서 수행할 수 있는 대부분의 작업을 코드로 구현할 수 있다.
셀레니움(Selenium) 크롤링의 개념
- 웹 크롤링은 웹 사이트에 있는 데이터를 수집하는 작업이다.
- 단순히 HTML 데이터를 가져오는 일반적인 크롤링과는 달리, 동적 웹페이지나 JavaScript로 렌더링되는 콘텐츠도 제어하고 데이터를 수집할 수 있다는 장점이 있다.
셀레니움 크롤링의 주요 과정
- 웹 페이지 접속 :
- Selenium이 웹 브라우저를 열고, 특정 URL로 이동한다.
- Python에서 webdriver를 사용해, 크롬 같은 브라우저를 실행한다.
- HTML 요소 찾기 :
- 특정 데이터가 포함된 HTML 태그를 탐색한다.
- Selenium은 CSS, XPath 등을 사용하여 원하는 요소를 선택할 수 있다.
- 동작 수행 :
- 버튼 클릭, 입력값 전송, 드롭다운 선택 등 사용자가 브라우저에서 수행할 수 있는 동작을 자동으로 처리한다.
- 데이터 추출 :
- 원하는 텍스트, 이미지 URL 등을 가져온다.
- 반복 작업 :
- 페이지를 스크롤하거나, 다음 페이지로 이동하며 반복적으로 데이터를 수집한다.
Python에서의 크롤링 예제 코드
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
# 브라우저 드라이버 실행 (ChromeDriver 사용)
driver = webdriver.Chrome()
# 1. 웹 페이지로 이동
driver.get("https://example.com")
# 2. HTML 요소 찾기
search_box = driver.find_element(By.NAME, "q") # 검색창 찾기
search_box.send_keys("Selenium") # 검색어 입력
search_box.send_keys(Keys.RETURN) # Enter 키 입력
# 3. 검색 결과 가져오기
results = driver.find_elements(By.CSS_SELECTOR, "div.result")
for result in results:
print(result.text) # 결과 텍스트 출력
# 4. 브라우저 닫기
driver.quit()
Selenium이 QA와 관련된 이유
Selenium은 단순히 데이터를 수집하는 도구로만 쓰이지 않고, 웹 애플리케이션의 UI/UX 테스트 자동화에도 널리 사용된다.
예를 들어, 버튼 클릭이나 폼 제출 등 사용자의 동작을 자동화하여 기능 검증을 할 때도 사용된다.
이 때문에 Selenium을 사용하는 크롤링 경험은 테스트 자동화 경험으로 어필 가능하다.!
728x90