[python] 파이썬 BeautifulSoup의 주요 기능

BeautifulSoup은 파이썬에서 HTML과 XML 문서를 파싱하고, 데이터를 추출하고 조작하는 데 사용되는 라이브러리입니다. 이번 기사에서는 BeautifulSoup의 주요 기능에 대해 자세히 살펴보겠습니다.

1. HTML/XML 파싱

먼저, BeautifulSoup은 HTML과 XML 문서를 파싱하는 기능을 제공합니다. BeautifulSoup 객체를 생성하고, 파싱하려는 문서와 해당 문서의 형식을 지정하여 파싱할 수 있습니다.

from bs4 import BeautifulSoup

html = """
<html>
  <body>
    <h1>Hello, Beautiful Soup!</h1>
    <p>BeautifulSoup을 사용하여 HTML 문서를 파싱해보세요.</p>
  </body>
</html>
"""

soup = BeautifulSoup(html, 'html.parser')

위의 예제에서 BeautifulSoup(html, 'html.parser')는 HTML 문서를 파싱하여 soup 객체에 저장하는 과정입니다.

2. 데이터 추출

BeautifulSoup은 파싱한 문서에서 원하는 데이터를 추출하는 기능을 제공합니다. find() 또는 find_all() 메서드를 사용하여 원하는 요소를 찾을 수 있습니다.

title = soup.find('h1').text
paragraphs = soup.find_all('p')

print(title)  # Hello, Beautiful Soup!
print(paragraphs[0].text)  # BeautifulSoup을 사용하여 HTML 문서를 파싱해보세요.

위의 예제에서 find('h1')은 첫 번째로 발견되는 h1 요소를 찾고, text 속성으로 해당 요소의 텍스트를 추출합니다.

3. 데이터 조작

BeautifulSoup은 추출한 데이터를 조작하는 기능을 제공합니다. 예를 들어, 데이터를 수정하거나 새로운 요소를 추가하는 등의 작업을 할 수 있습니다.

title = soup.find('h1')
title.text = 'Hello, New Title!' # 타이틀 변경

new_paragraph = soup.new_tag('p') # 새로운 p 요소 생성
new_paragraph.string = 'This is a new paragraph.' # 텍스트 추가

body = soup.find('body')
body.append(new_paragraph) # p 요소를 body에 추가

print(body.prettify()) # 변경된 결과 출력

위의 예제에서 title.text를 사용하여 h1 요소의 텍스트를 변경하고, soup.new_tag('p')를 사용하여 새로운 p 요소를 생성합니다. 그리고 body.append(new_paragraph)를 통해 새로운 p 요소를 body에 추가합니다.

또한, BeautifulSoup은 다른 라이브러리와 함께 사용하여 데이터를 크롤링하거나 분석하는 데에도 매우 유용합니다.

이상으로 BeautifulSoup의 주요 기능에 대해 알아보았습니다. BeautifulSoup은 간단하고 직관적인 인터페이스로 HTML과 XML 문서를 다룰 수 있으며, 데이터 추출 및 조작 기능을 제공하여 웹 스크래핑 작업에 매우 유용한 도구입니다.

참고 자료: