[python] Beautiful Soup로 웹 페이지에서 특정 속성으로 그룹화하기

이 글에서는 Beautiful Soup라는 파이썬 라이브러리를 사용하여 웹 페이지에서 특정 속성으로 그룹화하는 방법에 대해 알아보겠습니다.

Beautiful Soup이란?

Beautiful Soup은 웹 스크래핑에 사용되는 파이썬 라이브러리로, HTML과 XML 문서를 파싱하고 원하는 데이터를 추출하는 기능을 제공합니다.

설치

Beautiful Soup을 사용하기 위해서는 먼저 파이썬 패키지 관리자인 pip를 사용하여 설치해야 합니다. 다음 명령어로 설치할 수 있습니다.

pip install beautifulsoup4

웹 페이지에서 속성으로 그룹화하기

이제 Beautiful Soup을 사용하여 웹 페이지에서 특정 속성으로 그룹화하는 방법을 알아보겠습니다. 예시로 아래와 같은 HTML 코드가 있다고 가정해보겠습니다.

<html>
<body>
    <div class="group1">
        <p>Group 1 - Item 1</p>
        <p>Group 1 - Item 2</p>
        <p>Group 1 - Item 3</p>
    </div>
    <div class="group2">
        <p>Group 2 - Item 1</p>
        <p>Group 2 - Item 2</p>
        <p>Group 2 - Item 3</p>
    </div>
    <div class="group1">
        <p>Group 1 - Item 4</p>
        <p>Group 1 - Item 5</p>
        <p>Group 1 - Item 6</p>
    </div>
</body>
</html>

위의 HTML 코드에서 “group1” 클래스와 “group2” 클래스로 그룹화된 요소들을 추출해보겠습니다.

from bs4 import BeautifulSoup

html = """
<html>
<body>
    <div class="group1">
        <p>Group 1 - Item 1</p>
        <p>Group 1 - Item 2</p>
        <p>Group 1 - Item 3</p>
    </div>
    <div class="group2">
        <p>Group 2 - Item 1</p>
        <p>Group 2 - Item 2</p>
        <p>Group 2 - Item 3</p>
    </div>
    <div class="group1">
        <p>Group 1 - Item 4</p>
        <p>Group 1 - Item 5</p>
        <p>Group 1 - Item 6</p>
    </div>
</body>
</html>
"""

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

groups = soup.find_all("div", class_=["group1", "group2"])

for group in groups:
    items = group.find_all("p")
    group_items = [item.get_text() for item in items]
    print(f"Group: {group['class']}")
    print("Items:")
    for item in group_items:
        print(f"- {item}")
    print("-" * 10)

위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

Group: ['group1']
Items:
- Group 1 - Item 1
- Group 1 - Item 2
- Group 1 - Item 3
----------
Group: ['group2']
Items:
- Group 2 - Item 1
- Group 2 - Item 2
- Group 2 - Item 3
----------
Group: ['group1']
Items:
- Group 1 - Item 4
- Group 1 - Item 5
- Group 1 - Item 6
----------

위의 결과에서 볼 수 있듯이 “group1”과 “group2”로 그룹화된 요소들을 추출할 수 있습니다. 이를 통해 Beautiful Soup을 사용하여 웹 페이지에서 특정 속성으로 그룹화하는 작업을 수행할 수 있습니다.

마무리

이번 글에서는 Beautiful Soup을 사용하여 웹 페이지에서 특정 속성으로 그룹화하는 방법에 대해 알아보았습니다. Beautiful Soup은 웹 스크래핑 작업을 수행할 때 매우 유용한 도구이므로, 웹 데이터 분석 등 다양한 분야에서 활용할 수 있습니다.