티스토리 뷰

BeautifulSoup과 Selenium을 이용한 파이썬 웹 스크래핑 기법
BeautifulSoup과 Selenium을 이용한 파이썬 웹 스크래핑 기법

BeautifulSoup과 Selenium을 이용한 파이썬 웹 스크래핑 기법

 

파이썬에서 웹 데이터를 쉽게 수집하는 방법이 궁금하신가요? BeautifulSoup과 Selenium을 활용하면 정적·동적 페이지를 모두 크롤링할 수 있습니다. 기본 개념부터 실전 예제까지, 쉽고 자연스럽게 배워보세요!


🏁 웹 스크래핑이란?

웹 스크래핑이란?
웹 스크래핑이란?

웹 스크래핑(Web Scraping)은 웹사이트에서 원하는 데이터를 자동으로 가져오는 기술입니다. 뉴스 기사, 쇼핑몰 가격 비교, 데이터 분석 등 다양한 분야에서 활용됩니다.

파이썬에서는 BeautifulSoup과 Selenium을 활용하면 쉽고 효과적으로 데이터를 수집할 수 있습니다. 이 두 가지 라이브러리가 어떤 차이가 있고, 언제 사용하면 좋을지 알아볼까요?


🛠 BeautifulSoup vs Selenium

BeautifulSoup vs 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) 등을 활용하여 저장할 수 있습니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/06   »
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
글 보관함