BeautifulSoup란?
BeautifulSoup
은 파이썬에서 웹 크롤링을 쉽게 수행할 수 있도록 도와주는 라이브러리로, HTML 파일에서 데이터를 추출하고 파싱합니다.
파싱(parsing)은 웹페이지의 HTML 문서를 분석하여 원하는 데이터를 추출하는 과정을 뜻합니다. BeautifulSoup은 이러한 파싱 작업을 쉽게 수행할 수 있도록 돕습니다.
BeautifulSoup의 기능과 특징
-
다양한 파서 지원
-
BeautifulSoup은 HTML/XML 문서를 파싱하기 위해 여러 종류의 파서(parser)를 지원합니다.
-
가장 일반적으로 사용되는 파서는
html.parser
(표준 파이썬 라이브러리)와lxml
입니다.
-
-
간편한 데이터 추출
-
특정 태그, ID, 클래스 등을 쉽게 검색할 수 있습니다.
-
텍스트, 속성 값 등 웹페이지의 다양한 요소들을 효과적으로 추출할 수 있습니다.
-
-
복잡한 HTML 구조 다루기
-
중첩된 태그나 복잡한 HTML 구조도 쉽게 탐색하고, 필요한 데이터를 추출할 수 있습니다.
-
태그의 계층적 관 계를 활용하여 정확한 데이터 위치를 찾을 수 있습니다.
-
-
유연한 검색 방법
-
CSS 선택자, 정규 표현식 등 다양한 방법으로 데이터를 검색할 수 있습니다.
-
복수의 조건을 결합하여 특정 패턴을 가진 데이터를 찾는 것도 가능합니다.
-
사용법
BeautifulSoup 라이브러리 사용 예제
from bs4 import BeautifulSoup
# HTML 문서 예시
html_doc = """
<html>
<head>
<title>The Codefriends' story</title>
</head>
<body>
<p class="title"><b>The Codefriends' story</b></p>
<p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p>
<p class="story">...</p>
</body>
</html>
"""
# BeautifulSoup 객체 생성
soup = BeautifulSoup(html_doc, 'html.parser')
# HTML title 태그 내용 추 출
title = soup.title.text
print('Title:', title) # 결과: The Codefriends' story
print('-' * 10)
# 'a' 태그의 href 속성 값 추출
for link in soup.find_all('a'):
print(link.get('href'))