BeautifulSoup은 파이썬의 패키지로, 웹 스크래핑과 파싱을 위한 강력한 도구입니다. HTML 문서를 쉽게 파싱하고 원하는 데이터만 추출할 수 있습니다. 이번 글에서는 BeautifulSoup을 사용하여 HTML 문서를 파싱하는 방법을 알아보겠습니다.
BeautifulSoup 설치
먼저 BeautifulSoup을 설치해야 합니다. 다음 명령어를 사용하여 설치하세요:
pip install beautifulsoup4
HTML 파싱
다음은 HTML 문서를 BeautifulSoup으로 파싱하는 간단한 예제입니다:
from bs4 import BeautifulSoup
html_doc = """
<html>
<head>
<title>파이썬 BeautifulSoup</title>
</head>
<body>
<h1>HTML 파싱 예제</h1>
<p>이것은 BeautifulSoup으로 파싱한 HTML 문서입니다.</p>
<ul>
<li>리스트 항목 1</li>
<li>리스트 항목 2</li>
<li>리스트 항목 3</li>
</ul>
</body>
</html>
"""
soup = BeautifulSoup(html_doc, 'html.parser')
# 원하는 요소 추출
title = soup.title
body = soup.body
print(title.text) # "파이썬 BeautifulSoup"
print(body.p.text) # "이것은 BeautifulSoup으로 파싱한 HTML 문서입니다."
위의 코드에서는 BeautifulSoup
클래스를 먼저 import합니다. 그 후, 파싱할 HTML 문서를 html_doc
변수에 저장합니다. html.parser
를 사용하여 BeautifulSoup 객체를 생성하고, title
과 body
요소를 추출합니다. 마지막으로, title.text
와 body.p.text
를 사용하여 텍스트를 출력합니다.
요소 선택 및 탐색
BeautifulSoup을 사용하면 다양한 방식으로 요소를 선택하고 탐색할 수 있습니다. 아래는 몇 가지 예제입니다:
find
: 해당 조건을 만족하는 첫 번째 요소를 반환합니다.find_all
: 해당 조건을 만족하는 모든 요소를 리스트로 반환합니다.select
: CSS 선택자를 사용하여 요소를 선택합니다.
다음은 find
와 find_all
의 사용 예제입니다:
from bs4 import BeautifulSoup
html_doc = """
<html>
<body>
<h1>HTML 파싱 예제</h1>
<p class="highlight">이것은 BeautifulSoup으로 파싱한 HTML 문서입니다.</p>
<ul>
<li>리스트 항목 1</li>
<li>리스트 항목 2</li>
<li>리스트 항목 3</li>
</ul>
</body>
</html>
"""
soup = BeautifulSoup(html_doc, 'html.parser')
# class 속성이 'highlight'인 첫 번째 p 요소를 반환
highlight_p = soup.find('p', class_='highlight')
print(highlight_p.text) # "이것은 BeautifulSoup으로 파싱한 HTML 문서입니다."
# 모든 li 요소를 리스트로 반환
li_items = soup.find_all('li')
for li in li_items:
print(li.text)
위의 코드에서는 highlight_p
변수에 find
메서드를 사용하여 p
요소 중 class
속성이 highlight
인 첫 번째 요소를 저장합니다. 이후 highlight_p.text
를 출력하면 해당 요소의 텍스트를 얻을 수 있습니다.
또한 li_items
변수에 find_all
메서드를 사용하여 모든 li
요소를 저장하고, 반복문을 사용하여 각 요소의 텍스트를 출력합니다.
이와 같이 BeautifulSoup을 사용하면 HTML 문서를 쉽게 파싱하고 원하는 데이터를 추출할 수 있습니다. 더 자세한 정보는 BeautifulSoup 공식 문서를 참조하세요.