[파이썬] Beautiful Soup 4 웹 페이지의 스크립트 및 스타일 태그 제거

웹 페이지를 스크래핑할 때, 주어진 데이터만 가져와야 하는 경우가 많습니다. 스크립트 태그와 스타일 태그는 페이지의 구조를 이해하는 데 도움이 되지만, 실제 데이터를 추출할 때는 제거해야 합니다. 이번 포스트에서는 파이썬의 Beautiful Soup 4 라이브러리를 사용하여 웹 페이지에서 스크립트 태그와 스타일 태그를 제거하는 방법에 대해 알아보겠습니다.

Beautiful Soup 4 소개

Beautiful Soup 4는 파이썬에서 웹 스크래핑을 하는데 사용되는 라이브러리입니다. HTML 또는 XML 형식의 문서를 파싱하여 원하는 데이터를 추출하는 데 사용됩니다. Beautiful Soup 4는 설치가 간단하고 사용하기 쉬우며, 유연하게 데이터를 조작할 수 있는 강력한 기능을 제공합니다.

Beautiful Soup 4로 스크립트 태그 제거하기

웹 페이지에서 데이터를 추출할 때, 스크립트 태그는 필요하지 않는 부분입니다. Beautiful Soup 4를 사용하여 스크립트 태그를 제거하는 방법은 다음과 같습니다.

예시 코드

from bs4 import BeautifulSoup

html = """
<html>
<head>
<script>
    function doSomething() {
        console.log('Doing something');
    }
</script>
</head>
<body>
    <h1>Hello, World!</h1>
    <script src="script.js"></script>
    <p>This is a paragraph.</p>
</body>
</html>
"""

# HTML을 파싱하여 Beautiful Soup 객체 생성
soup = BeautifulSoup(html, 'html.parser')

# 스크립트 태그 제거
for script in soup.find_all('script'):
    script.decompose()

# 결과 출력
print(soup)

위의 예시 코드에서는 Beautiful Soup를 사용하여 HTML 문서를 파싱하고, find_all 메소드를 사용하여 모든 스크립트 태그를 찾습니다. 각 스크립트 태그를 decompose 메소드를 사용하여 제거합니다. 마지막으로, 처리된 결과를 출력합니다.

출력 결과

<html>
<head>
</head>
<body>
    <h1>Hello, World!</h1>
    <p>This is a paragraph.</p>
</body>
</html>

출력 결과를 보면, 스크립트 태그가 제거되고 필요한 데이터만 남아있는 것을 확인할 수 있습니다.

Beautiful Soup 4로 스타일 태그 제거하기

웹 페이지에서 추출한 데이터를 분석하는 과정에서 스타일 태그도 불필요한 요소일 수 있습니다. Beautiful Soup 4를 사용하여 스타일 태그를 제거하는 방법은 다음과 같습니다.

예시 코드

from bs4 import BeautifulSoup

html = """
<html>
<head>
<style>
    p {
        color: red;
    }
</style>
</head>
<body>
    <h1>Hello, World!</h1>
    <style>
        h1 {
            font-size: 24px;
        }
    </style>
    <p>This is a paragraph.</p>
</body>
</html>
"""

# HTML을 파싱하여 Beautiful Soup 객체 생성
soup = BeautifulSoup(html, 'html.parser')

# 스타일 태그 제거
for style in soup.find_all('style'):
    style.decompose()

# 결과 출력
print(soup)

위의 예시 코드에서도 마찬가지로 Beautiful Soup 객체를 생성하고, find_all 메소드를 사용하여 모든 스타일 태그를 찾습니다. 각 스타일 태그를 decompose 메소드를 사용하여 제거합니다. 그리고 처리된 결과를 출력합니다.

출력 결과

<html>
<head>
</head>
<body>
    <h1>Hello, World!</h1>
    <p>This is a paragraph.</p>
</body>
</html>

출력 결과에서는 스타일 태그가 제거되고, 필요한 데이터만 남은 것을 확인할 수 있습니다.

결론

Beautiful Soup 4를 사용하면 웹 페이지에서 스크립트 태그와 스타일 태그를 간단하게 제거할 수 있습니다. 이를 통해 데이터 추출과 분석 작업을 더욱 효율적으로 진행할 수 있습니다.