본문 바로가기
카테고리 없음

비전공자를 위한 파이썬 BeautifulSoup 입문 가이드

by 가치정보인 2025. 3. 18.
반응형

BeautifulSoup은 웹에서 데이터를 쉽게 추출할 수 있도록 도와주는 파이썬 라이브러리입니다. 특히 비전공자나 프로그래밍 초보자도 간단한 코드만으로 원하는 정보를 가져올 수 있어 많이 사용됩니다. 이 글에서는 BeautifulSoup의 기본 개념과 설치 방법, 간단한 사용 예제까지 차근차근 설명하겠습니다.

1. BeautifulSoup이란? (웹 크롤링의 기본 개념)

웹 크롤링(Web Crawling)은 웹페이지에서 필요한 데이터를 자동으로 가져오는 기술입니다. 웹 크롤링을 하기 위해서는 HTML 구조를 분석하고 원하는 정보를 추출해야 하는데, 이때 BeautifulSoup이 큰 도움이 됩니다.

BeautifulSoup은 HTML과 XML 문서를 파싱(Parsing)하여 데이터를 쉽게 찾고, 수정하고, 추출할 수 있도록 해주는 라이브러리입니다. 주요 기능은 다음과 같습니다.

  • HTML 문서 구조를 자동으로 분석
  • 원하는 태그나 클래스의 요소 찾기
  • 텍스트 데이터만 추출하기
  • 웹페이지에서 링크, 이미지 등의 데이터 가져오기

특히, 비전공자도 쉽게 배울 수 있는 직관적인 문법을 제공하여 빠르게 웹 크롤링을 시작할 수 있습니다.

2. BeautifulSoup 설치 및 기본 사용법

BeautifulSoup을 사용하기 위해서는 먼저 파이썬이 설치되어 있어야 합니다. 이후 다음과 같은 과정으로 진행합니다.

2.1 BeautifulSoup 설치

pip install beautifulsoup4 requests

추가로 requests 라이브러리도 함께 설치하는데, 이는 웹페이지의 HTML을 가져오는 역할을 합니다.

2.2 기본 사용법

다음은 BeautifulSoup을 이용하여 간단한 HTML 문서를 분석하는 예제입니다.

from bs4 import BeautifulSoup

html_doc = """
테스트 페이지
BeautifulSoup 사용법이것은 간단한 웹 크롤링 예제입니다.


"""

soup = BeautifulSoup(html_doc, "html.parser")

print(soup.title)  # <title>테스트 페이지</title>
print(soup.title.text)  # 테스트 페이지
print(soup.p)  # <p class="title"><b>BeautifulSoup 사용법</b></p>
print(soup.p.text)  # BeautifulSoup 사용법

위 코드에서는 BeautifulSoup(html_doc, "html.parser")를 사용하여 HTML을 분석하고, soup.title.text와 같이 특정 태그의 값을 가져올 수 있습니다.

3. 실제 웹페이지 크롤링 예제

웹페이지에서 데이터를 가져오는 기본적인 과정은 다음과 같습니다.

3.1 웹페이지 HTML 가져오기

requests 라이브러리를 사용하여 웹페이지의 HTML을 가져올 수 있습니다.

import requests
from bs4 import BeautifulSoup

url = "https://example.com"  # 크롤링할 웹사이트 주소
response = requests.get(url)

# HTTP 응답이 정상적인지 확인
if response.status_code == 200:
    html = response.text
    soup = BeautifulSoup(html, "html.parser")
    print(soup.prettify())  # HTML 예쁘게 출력
else:
    print("페이지를 가져오지 못했습니다.")

위 코드에서 requests.get(url)을 이용해 웹페이지의 내용을 가져오고, soup.prettify()를 사용하여 HTML을 보기 좋게 출력합니다.

3.2 특정 태그 데이터 추출

예를 들어, 뉴스 웹사이트에서 기사 제목을 가져오는 방법은 다음과 같습니다.

url = "https://example-news.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")

# h2 태그 안의 텍스트 가져오기 (기사 제목이 h2 태그에 있다고 가정)
titles = soup.find_all("h2")

for title in titles:
    print(title.text)

find_all("h2")를 사용하면 모든 h2 태그를 찾아 리스트로 반환하고, title.text로 텍스트만 추출할 수 있습니다.

✅ 결론

BeautifulSoup은 웹 크롤링을 쉽고 직관적으로 할 수 있도록 도와주는 강력한 도구입니다. 특히 비전공자도 기본적인 문법만 익히면 원하는 웹페이지에서 데이터를 손쉽게 추출할 수 있습니다.

추후 실전 프로젝트를 진행하면서 더 많은 기능을 활용해볼 수도 있습니다. 다음 단계로는 크롤링한 데이터를 정리하여 엑셀 파일로 저장하거나, Pandas 라이브러리와 결합하여 분석하는 방법을 배워보는 것도 추천합니다.

반응형