BeautifulSoup: 웹 스크래핑 라이브러리
[BeautifulSoup]개념 및 실습
1. BeautifulSoup란?

파이썬과 웹 크롤링에 관심이 있다면, BeautifulSoup이라는 이름을 반드시 들어봤을 겁니다.
이름은 아름다운 수프지만, 사실 웹페이지의 HTML을 뜨끈하게 ‘해체’하는 도구죠.
이 도구는 웹페이지에서 필요한 정보를 스크랩하고자 할 때 요리처럼 사용됩니다.
이름하여 ‘국밥’ 라이브러리 🍜
쉽게 말해, BeautifulSoup은 HTML이나 XML 파일을 파싱해서 데이터를 추출하는 웹 스크래핑 라이브러리입니다. 이를 통해 웹에서 데이터를 가져오고 분석할 수 있습니다.
2. 준비물 🛠
2-1. BeautifulSoup 설치
아무리 맛있는 요리를 하려 해도 재료가 없으면 안 되겠죠? 먼저 BeautifulSoup을 설치해야 합니다. 간단하게 pip 명령어를 사용해 설치해 봅시다.
pip install beautifulsoup4
2-2. 필수 라이브러리
웹 크롤링에는 BeautifulSoup 외에도 도와줄 친구들이 필요합니다. requests 라이브러리를 사용하여 웹 페이지의 HTML을 가져오고, BeautifulSoup을 사용해 이를 파싱합니다.
pip install requests
3. 실습: Python으로 웹 크롤링하기
3-1. 간단한 예제
이제 본격적으로 크롤링을 시작해보죠. 오늘의 국밥은 ‘BeautifulSoup을 이용해 웹페이지에서 제목(title)을 가져오기’입니다.
# 필수 라이브러리 임포트
import requests # 웹 페이지 요청을 보내기 위한 라이브러리
from bs4 import BeautifulSoup # HTML 파싱을 위한 라이브러리
# 크롤링할 웹 페이지 주소
url = "https://example.com"
# 웹 페이지의 HTML 소스를 가져옵니다.
response = requests.get(url)
# BeautifulSoup 객체 생성
soup = BeautifulSoup(response.text, 'html.parser')
# 웹 페이지의 <title> 태그에 있는 내용을 가져옵니다.
title = soup.title.string
# 제목 출력
print(f"이 웹 페이지의 제목은 '{title}'입니다.")
주요 설명:
- requests.get(url): 해당 URL의 웹 페이지 내용을 가져옵니다. 그 결과를
response객체에 저장하죠. - BeautifulSoup(response.text, ‘html.parser’): BeautifulSoup 객체를 생성하고, 가져온 HTML을 파싱합니다.
- soup.title.string: 파싱된 HTML에서
<title>태그 안의 텍스트를 추출합니다.
이 코드를 실행하면, “이 웹 페이지의 제목은 ‘Example Domain’입니다.” 같은 출력이 나오게 됩니다. 이걸로 기본 크롤링은 성공! 🎉
4. 웹 페이지 정보 더 많이 가져오기
이제 다양한 HTML 요소도 함께 가져와 봅시다.
4-1. 특정 태그의 모든 요소 가져오기
이번엔 <a> 태그, 즉 링크를 모두 가져와 봅시다. BeautifulSoup은 이렇게 다양한 태그를 쉽게 찾아내는 기능도 제공합니다.
# <a> 태그를 모두 찾아서 리스트로 반환
links = soup.find_all('a')
# 링크 출력
for link in links:
print(link.get('href')) # 각 <a> 태그의 href 속성을 출력
이 코드를 실행하면 해당 웹 페이지의 모든 링크가 출력됩니다. 쉽게 말해, 링크 사냥꾼이 된 거죠! 🎯
5. 기타 활용 예시
BeautifulSoup은 이외에도 다양한 방법으로 HTML을 파싱할 수 있습니다.
5-1. 클래스명으로 요소 찾기
특정 클래스명을 가진 요소를 찾고 싶다면 이렇게 할 수 있습니다.
# 클래스명이 'example'인 div 태그 찾기
divs = soup.find_all('div', class_='example')
for div in divs:
print(div.text) # 각 div 태그의 텍스트 출력
클래스명을 기준으로 찾을 수 있어서 매우 유용하죠. 이제는 ‘데이터 추출 마스터’라고 불러도 될 정도입니다! 🏆
6. 마무리: 스크래핑할 때 주의할 점
BeautifulSoup은 정말 강력한 도구지만, 웹 크롤링 시에는 주의할 점도 많습니다. 특히 웹사이트의 로봇 배제 표준(robots.txt)을 꼭 확인하세요. 이 파일은 웹사이트가 허용하는 크롤러 범위를 지정합니다. 허용되지 않는 곳을 무단으로 크롤링하다가 문제가 생기면 인생 힘들어질 수도..🙅♂️
댓글남기기