[python] Beautiful Soup의 기능
Beautiful Soup은 파이썬으로 작성된 웹 크롤링 라이브러리입니다. 웹 페이지의 HTML 코드를 파싱하고, 필요한 데이터를 추출하는 데 사용됩니다. 이 라이브러리는 쉽고 간편한 사용법으로 인해 많은 개발자들에게 사랑받고 있습니다.
1. HTML 파싱
Beautiful Soup은 웹 페이지의 HTML 코드를 파싱하여 트리 구조로 변환합니다. 이를 통해 각 요소에 쉽게 접근하고 원하는 정보를 추출할 수 있습니다. 다양한 파싱 방법을 지원하며, 유연하게 HTML을 다룰 수 있습니다.
from bs4 import BeautifulSoup
html = "<html><body><h1>Example</h1><p>Hello, Beautiful Soup!</p></body></html>"
soup = BeautifulSoup(html, 'html.parser')
title = soup.h1.text
content = soup.p.text
print(f"Title: {title}")
print(f"Content: {content}")
위의 예제에서는 HTML 코드를 BeautifulSoup
객체로 파싱하고, h1
태그의 텍스트로부터 타이틀을 추출하고, p
태그의 텍스트로부터 내용을 추출합니다.
2. CSS 선택자로 요소 선택
Beautiful Soup은 CSS 선택자를 사용하여 원하는 요소를 선택할 수 있습니다. 이를 통해 특정 클래스나 아이디를 가진 요소를 간편하게 추출할 수 있습니다.
from bs4 import BeautifulSoup
html = "<html><body><h1 class='title'>Example</h1><p>Hello, Beautiful Soup!</p></body></html>"
soup = BeautifulSoup(html, 'html.parser')
title = soup.select_one('.title').text
content = soup.select_one('p').text
print(f"Title: {title}")
print(f"Content: {content}")
위의 예제에서는 select_one
메서드를 사용하여 .title
클래스를 가진 요소의 텍스트를 추출하고, p
태그의 텍스트를 추출합니다.
3. 데이터 탐색과 수정
Beautiful Soup은 트리 구조로 변환된 HTML을 탐색하고, 원하는 위치의 요소를 수정할 수 있는 기능을 제공합니다. 이를 통해 웹 페이지의 구조를 분석하거나 원하는 데이터를 추출할 수 있습니다.
from bs4 import BeautifulSoup
html = "<html><body><h1>Example</h1><ul><li>Item 1</li><li>Item 2</li><li>Item 3</li></ul></body></html>"
soup = BeautifulSoup(html, 'html.parser')
title = soup.h1.text
items = soup.ul.find_all('li')
print(f"Title: {title}")
print("Items:")
for item in items:
print(item.text)
위의 예제에서는 find_all
메서드를 사용하여 li
태그를 모두 찾아내고, text
속성을 통해 텍스트를 추출합니다.
참고 자료
- Beautiful Soup 공식 문서: https://www.crummy.com/software/BeautifulSoup/bs4/doc/
- CSS 선택자 사용법: https://www.w3schools.com/cssref/css_selectors.php