BeautifulSoup은 뭐고 왜 필요한가요? – 웹 크롤링 입문자를 위한 진짜 설명서 (파이썬 독학)
“웹 크롤링을 하려면 BeautifulSoup을 써야 해요.” 이 말이 무슨 뜻인지 바로 이해되시나요?
안녕하세요, 문과 출신 파이썬 독학러 문노베입니다.
저는 웹 크롤링이라는 개념을 처음 들었을 때, “웹사이트에서 정보를 가져온다”는 말이 도무지 감이 안 왔어요.
그보다 더 혼란스러웠던 건 바로 이 단어: “BeautifulSoup”
이게 대체 뭐고, 왜 이름이 수프(soup)야? 왜 파이썬에서는 이걸 써야 정보를 가져올 수 있지?
오늘은 그 궁금증을 하나하나, 진짜 이해되는 방식으로 풀어드릴게요.
2025.03.19 - [AI 정복기/Python - 혼자할 수 있을까?] - 노베이스 비전공자들에게 파이썬이 희망인 이유
노베이스 비전공자들에게 파이썬이 희망인 이유
노베이스 비전공자들에게 파이썬이 희망인 이유"코딩? 그거 이과 전공자들이나 하는 거 아냐?" 파이썬을 배우면서 알게 된 사실, 문과생들에게도 이건 엄청난 무기입니다. 안녕하세요, 여러분!
nobe-moon.tistory.com
목차
1. 웹 크롤링이란? – 우리가 인터넷에서 정보를 ‘가져온다’는 것
웹 크롤링(Web Crawling)은 웹페이지에 접속해서, 우리가 필요한 정보를 자동으로 수집하는 기술입니다.
사람이 눈으로 보던 것을, 컴퓨터가 대신 읽고 정리하게 만드는 거죠.
예를 들어 다음과 같은 일을 하고 싶을 때 크롤링이 필요해요:
- ✅ 뉴스 사이트에서 특정 키워드가 포함된 기사 제목 수집
- ✅ 쇼핑몰에서 오늘자 가격 정보 수집
- ✅ 부동산 매물 데이터를 자동으로 엑셀에 저장
BeautifulSoup은 이런 크롤링을 할 때 필수로 등장하는 도구 중 하나입니다.
2. BeautifulSoup의 정체 – 이름에 속지 말 것
BeautifulSoup은 HTML 구조를 '예쁘게 다듬어서', 우리가 원하는 정보만 뽑을 수 있게 도와주는 파이썬 라이브러리입니다.
HTML은 웹페이지를 구성하는 코드인데, 이걸 그냥 받아오면 온통 태그와 속성투성이인 ‘잡탕 상태’ 예요.
그래서 만든 사람이 “수프처럼 뒤섞인 HTML을 예쁘게 요리해준다”는 의미로 이 이름을 붙인 거죠.
“Beautiful Soup is a Python library for pulling data out of HTML and XML files.” – 공식 문서: https://www.crummy.com/software/BeautifulSoup/bs4/doc/
한마디로 HTML 파싱 도구예요. 읽기 어려운 웹페이지 코드를, .text
, .find()
, .select()
같은 명령으로 쉽게 접근할 수 있게 도와주는 거죠.
3. requests + BeautifulSoup – 역할 분담 확실한 환상의 콤비
크롤링에서는 반드시 두 가지 라이브러리를 함께 씁니다:
라이브러리 | 역할 |
---|---|
requests | 웹페이지에 접속해서 HTML 코드 자체를 가져옴 |
BeautifulSoup | 가져온 HTML 코드를 '읽기 좋게 가공'해서 원하는 정보만 추출 |
requests가 HTML 덩어리를 가져오는 배달부라면, BeautifulSoup은 그걸 정리해서 우리가 먹기 좋게 플레이팅 해주는 요리사예요.
4. 설치 방법과 실전 예제 – 진짜 작동하는 코드 보기
크롤링을 시작하려면 먼저 두 패키지를 설치해야 해요:
pip install requests
pip install beautifulsoup4
그리고 아래는 실전 예제 코드입니다. 네이버 뉴스에서 '파이썬' 키워드를 검색해, 기사 제목을 가져오는 간단한 코드예요:
import requests
from bs4 import BeautifulSoup
query = "파이썬"
url = f"https://search.naver.com/search.naver?where=news&query={query}"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
titles = soup.select(".news_tit")
for t in titles:
print(t.text)
코드 설명은 다음과 같아요:
- requests.get(url) → 해당 뉴스 검색 결과 페이지 요청
- BeautifulSoup(response.text) → HTML 코드 정리
- .select(".news_tit") → 기사 제목 요소들 추출
FAQ + 마무리
- Q1. 꼭 BeautifulSoup을 써야 하나요?
→ HTML을 직접 파싱하려면 너무 복잡하고 비효율적이에요. BeautifulSoup이 거의 표준 도구처럼 사용됩니다. - Q2. 크롤링은 불법 아닌가요?
→ 대부분의 사이트는 '과도한 요청'이나 '로그인/결제 정보 크롤링'만 금지합니다. robots.txt 정책을 확인하세요. - Q3. requests 말고 Selenium은 뭔가요?
→ Selenium은 자바스크립트가 있는 복잡한 페이지 크롤링용입니다. BeautifulSoup은 정적 HTML에 특화돼 있어요.
오늘은 BeautifulSoup의 개념과 역할, 그리고 기본 사용법까지 살펴봤어요.
다음 글에서는 크롤링한 데이터를 CSV로 저장하거나, 자동화하는 방법을 배워볼게요!
'AI 정복기 > Python - 혼자할 수 있을까?' 카테고리의 다른 글
pip는 도대체 뭘까? – 설치부터 작동 원리까지 한 번에 이해하기 (파이썬 기초, 독학) (0) | 2025.04.11 |
---|---|
파이썬 실행 안 될 때 꼭 알아야 할 기본 개념 3가지 (0) | 2025.04.07 |
VSCode는 파이썬인가요? – 처음부터 개념 확실히 잡는 입문자 가이드 (파이썬 독학) (1) | 2025.03.25 |
파이썬으로 부동산 매물 정보 자동 정리하기 – 진짜로 가능해요? (1) | 2025.03.23 |
노베이스 비전공자들에게 파이썬이 희망인 이유 (1) | 2025.03.19 |
댓글