제로베이스 데이터 취업 파트타임/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일반 강의 자료 일부를 발췌하여 작성되었습니다.”