[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 속성을 통해 텍스트를 추출합니다.

참고 자료