티스토리 뷰
BeautifulSoup과 Selenium을 이용한 파이썬 웹 스크래핑 기법
파이썬에서 웹 데이터를 쉽게 수집하는 방법이 궁금하신가요? BeautifulSoup과 Selenium을 활용하면 정적·동적 페이지를 모두 크롤링할 수 있습니다. 기본 개념부터 실전 예제까지, 쉽고 자연스럽게 배워보세요!
🏁 웹 스크래핑이란?
웹 스크래핑(Web Scraping)은 웹사이트에서 원하는 데이터를 자동으로 가져오는 기술입니다. 뉴스 기사, 쇼핑몰 가격 비교, 데이터 분석 등 다양한 분야에서 활용됩니다.
파이썬에서는 BeautifulSoup과 Selenium을 활용하면 쉽고 효과적으로 데이터를 수집할 수 있습니다. 이 두 가지 라이브러리가 어떤 차이가 있고, 언제 사용하면 좋을지 알아볼까요?
🛠 BeautifulSoup vs Selenium
라이브러리 | 특징 및 용도 |
BeautifulSoup | 정적인 HTML을 분석하여 필요한 정보를 추출할 때 유용 |
Selenium | JavaScript가 포함된 동적 웹페이지에서 데이터를 가져올 때 필요 |
📌 언제 어떤 라이브러리를 사용할까?
- BeautifulSoup: HTML이 정적으로 로딩되는 페이지에서 데이터를 빠르게 가져올 때
- Selenium: 버튼 클릭, 로그인 등 사용자의 액션이 필요한 페이지를 다룰 때
🏗 BeautifulSoup을 이용한 웹 스크래핑
1️⃣ BeautifulSoup 설치
pip install beautifulsoup4 requests
2️⃣ 간단한 웹페이지 크롤링 예제
import requests
from bs4 import BeautifulSoup
url = "https://twinsl.tistory.com/"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
# 제목 가져오기
title = soup.find("h1").text
print(f"제목: {title}")
예상 실행 결과:
제목: Twins Blog
🕹 Selenium을 이용한 웹 스크래핑
1️⃣ Selenium 설치 및 드라이버 설정
pip install selenium
웹 드라이버 다운로드 후 사용 (Chrome 예시)
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
# 크롬 드라이버 실행
driver = webdriver.Chrome()
driver.get("https://twinsl.tistory.com/")
title = driver.find_element(By.TAG_NAME, "h1").text
print(f"제목: {title}")
driver.quit()
예상 실행 결과:
제목: Twins Blog
🛠 BeautifulSoup + Selenium 함께 사용하기
두 라이브러리를 조합하여 동적 콘텐츠를 크롤링하는 예제입니다.
from selenium import webdriver
from selenium.webdriver.common.by import By
from bs4 import BeautifulSoup
import time
# Selenium으로 페이지 로드
driver = webdriver.Chrome()
driver.get("https://twinsl.tistory.com/")
time.sleep(3)
# 페이지 소스를 BeautifulSoup에 전달
soup = BeautifulSoup(driver.page_source, "html.parser")
titles = soup.find_all("h1")
for title in titles:
print(f"제목: {title.text}")
driver.quit()
예상 실행 결과:
제목: Twins Blog
🏆 웹 스크래핑 시 주의할 점
✅ robots.txt 확인: 크롤링이 허용된 페이지인지 반드시 확인하기
✅ 서버에 부담을 주지 않기: time.sleep()을 사용해 요청 속도를 조절하기
✅ IP 차단 방지: User-Agent 변경 및 프록시 활용하기
🎯 효과적인 웹 스크래핑을 위한 팁
웹 스크래핑은 단순히 데이터를 가져오는 것이 아니라, 효율적인 코드 작성과 법적 문제를 고려하는 것이 중요합니다. BeautifulSoup과 Selenium을 적절히 조합해 원하는 데이터를 안전하고 효율적으로 수집해보세요!
❓ Q&A
Q1. 웹 스크래핑이 불법인가요?
아닙니다. 다만 사이트의 robots.txt 규정을 따르고, 개인정보 보호 및 서비스 약관을 준수해야 합니다.
Q2. JavaScript로 렌더링된 데이터를 BeautifulSoup만으로 가져올 수 있나요?
아니요. BeautifulSoup은 정적인 HTML만 분석할 수 있기 때문에 Selenium과 함께 사용하는 것이 좋습니다.
Q3. 크롤링한 데이터를 저장하는 방법은?
CSV, JSON, 또는 데이터베이스(MySQL, MongoDB) 등을 활용하여 저장할 수 있습니다.
'Python' 카테고리의 다른 글
2025년 AI 개발 트렌드 완벽 정리! 파이썬으로 대비하는 법 (1) | 2025.02.22 |
---|---|
파이썬 TensorFlow로 딥러닝 시작하기! 실전 활용 가이드 (1) | 2025.02.20 |
파이썬으로 머신러닝 개발! Scikit-learn 실전 활용법 (0) | 2025.02.20 |
AI 개발을 위한 필수 파이썬 라이브러리 10가지 (0) | 2025.02.19 |
파이썬으로 데이터 시각화하기! Matplotlib과 Seaborn 활용법 (0) | 2025.02.19 |
- Total
- Today
- Yesterday
- #파이썬 #리스트 #딕셔너리 #튜플 #python자료구조
- #python #조건문 #반복문 #응용프로그램 #프로그래밍기초 #python기초
- #파이썬 #머신러닝 #scikitlearn #데이터분석 #ai #모델학습 #딥러닝
- #파이썬 #함수 #기본사용법 #프로그래밍 #코딩 #python
- #파이썬 #클래스 #객체지향 #oop #파이썬클래스
- #파이썬 #python #프로그래밍 #머신러닝 #ai #데이터분석 #웹개발 #자동화
- #파이썬 #python설치 #프로그래밍입문 #코딩초보 #개발자 #it기초 #python튜토리얼 #python사용법
- #파이썬 #python #datetime #날짜처리 #시간관리
- #ai개발 #파이썬 #에이전트ai #지속가능한ai #소형언어모델 #머신러닝 #딥러닝 #tensorflow #pytorch #데이터과학
- #파이썬 #python #로또번호 #랜덤숫자 #코딩기초
- #파이썬 #프레임워크 #django #flask #fastapi #웹개발 #비동기프레임워크
- #python #조건문 #반복문 #연산자 #프로그래밍기초 #python기초
- #python #변수 #프로그래밍기초 #python기초 #코딩연습
- #파이썬 #정규표현식 #python #regex #re모듈
- #ai개발 #머신러닝 #딥러닝 #파이썬라이브러리 #tensorflow #pytorch #scikitlearn #데이터분석 #자연어처리 #opencv #spacy
- #파이썬 #데이터시각화 #matplotlib #seaborn #데이터분석 #그래프 #히스토그램 #히트맵
- #파이썬 #tensorflow #딥러닝 #머신러닝 #ai #데이터분석 #모델학습 #인공지능
- #파이썬 #모듈 #기본사용법 #프로그래밍 #코딩 #python
- #파이썬 #python #가위바위보 #프로그래밍 #코딩기초
- #파이썬 #웹스크래핑 #beautifulsoup #selenium #크롤링 #데이터수집
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |