제로베이스 데이터 취업 파트타임/100일 챌린지_일일 학습 일지
제로베이스 데이터 파트타임 스쿨 학습 일지 [25.05.16]
김뚱입니다
2025. 5. 16. 23:27
[강의 요약]
[Part 04. EDA/웹 크롤링/파이썬 프로그래밍_ Ch 05. 유가 분석] 강의 수강
클립 01~10까지 강의 수강하였음
10_실습 - selenium 기초 - 5 selenium과 beautifulsoup 함께 사용하기까지
🐢 100일 챌린지 🔥 : [▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰░ ] 61/100일 (61%)
[클립 01~10까지 정리]
▶ 1. 셀레니움(Selenium)이란?
- 셀레니움은 웹 브라우저를 자동으로 열고, 클릭하고, 입력하는 등 조작을 대신해 주는 도구
- 사람이 마우스로 하던 웹 작업을 코드로 자동화할 수 있게 도와준다.
- 이전에 사용해 본 경험은 있으나 딥하게 사용하진 않았다.
언제 사용할까?
- 자바스크립트로 동작하는 웹페이지
- 데이터를 눈에 보이게 만들기 위해 클릭, 대기 필요
- 드롭다운 메뉴, 버튼 클릭, 로그인
- 단순 HTML이 아닌 사용자 동작이 필요할 때
- BeautifulSoup이 페이지를 못 읽을 때
- 렌더링 된 결과를 가져오고 싶을 때
▶ 2. 설치 및 드라이버 환경 구성
일반 환경 (pip)
pip install selenium
아나콘다 환경
conda install selenium
▶ 3. Selenium 브라우저 실행 구조
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
# Chrome 브라우저 실행
driver = webdriver.Chrome('./driver/chromedriver')
# 원하는 페이지 접속
url = 'https://example.com'
driver.get(url)
- webdriver.Chrome() : 셀레니움으로 브라우저 띄우기
- get(url) : 해당 url 웹페이지 열기
driver.get(url) 후에는 브라우저가 열려 있어야 한다. (닫으면 자동화 종료)
▶ 4. 주요 사용 함수 구조
● 요소 찾기
element = driver.find_element(By.ID, 'my_id')
- By.ID, By.CLASS_NAME, By.TAG_NAME, By.NAME 등 다양한 방식으로 요소 탐색 가능
● 입력값 보내기
element.send_keys('검색어')
- 실제 사용자가 키보드로 입력하는 것처럼 입력된다.
● 클릭하기
element.click()
- 마우스로 클릭한 것처럼 동작함
이 모든 동작은 실제 사람이 웹 브라우저를 조작하는 것과 같기 때문에
시간 지연(time.sleep)을 적절히 넣어주는 것이 중요함. (그러지 않으면 밴 당할 수 있음..)
▶ 5. 예시
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
# 드라이버 경로 설정
path = './driver/chromedriver'
driver = webdriver.Chrome(path)
# 테스트용 URL 접속
driver.get('https://example.com')
time.sleep(2)
# 요소 탐색 및 입력, 클릭 시뮬레이션
search_box = driver.find_element(By.NAME, 'q')
search_box.send_keys('Selenium')
search_box.submit()
- .submit()은 <form> 형태일 경우 유용하다.
- 일반 버튼 클릭은 .click() 사용한다.
[나의 생각 정리]
앞으로 실습에 필요한 기초 내용을 정리하는 시간을 가졌다.
뉴스나 도서 랭킹 같은 정보를 셀레니움으로 끌어왔던 것 같은데 오래되어서 기억이...
[적용점]
데이터 분석에서 사용
“이 글은 제로베이스 데이터 스쿨 주 3일반 강의 자료 일부를 발췌하여 작성되었습니다.”