[python] 파이썬 BeautifulSoup으로 웹 페이지 스크랩핑 및 저장

BeautifulSoup은 파이썬의 라이브러리로, HTML 또는 XML 문서를 파싱하기 위해 사용됩니다. 이를 이용하여 웹 페이지의 내용을 추출하고, 필요한 정보를 스크랩하여 저장할 수 있습니다.

BeautifulSoup 설치

BeautifulSoup을 사용하기 위해서는 먼저 라이브러리를 설치해야 합니다. 파이썬의 pip 명령어를 사용하여 설치할 수 있습니다.

pip install beautifulsoup4

웹 페이지 스크랩핑

BeautifulSoup을 사용하여 웹 페이지를 스크랩핑하는 간단한 예제를 살펴보겠습니다. 예를 들어, 다음과 같은 HTML 문서가 있다고 가정해봅시다.

<html>
<head>
    <title>스크랩핑 예제</title>
</head>
<body>
    <h1>웹 페이지 스크랩핑</h1>
    <p>이 예제는 BeautifulSoup을 이용하여 웹 페이지를 스크랩핑하는 방법을 보여줍니다.</p>
    <ul>
        <li>항목 1</li>
        <li>항목 2</li>
        <li>항목 3</li>
    </ul>
</body>
</html>

이 페이지에서 <h1> 태그의 내용을 추출해보겠습니다.

from bs4 import BeautifulSoup

html = """
<html>
<head>
    <title>스크랩핑 예제</title>
</head>
<body>
    <h1>웹 페이지 스크랩핑</h1>
    <p>이 예제는 BeautifulSoup을 이용하여 웹 페이지를 스크랩핑하는 방법을 보여줍니다.</p>
    <ul>
        <li>항목 1</li>
        <li>항목 2</li>
        <li>항목 3</li>
    </ul>
</body>
</html>
"""

soup = BeautifulSoup(html, 'html.parser')
title = soup.h1.text

print(title)

위 예제에서 BeautifulSoup 객체를 생성할 때, 첫 번째 인자로 HTML 문서를 전달하고, 두 번째 인자로 파서를 지정합니다. 위 예제에서는 'html.parser'를 사용하였습니다.

웹 페이지 스크랩하여 저장

BeautifulSoup을 이용하여 웹 페이지를 스크랩하여 필요한 정보를 추출하고, 이를 파일로 저장할 수 있습니다.

from bs4 import BeautifulSoup
import requests

url = 'https://example.com'
response = requests.get(url)
html = response.text

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

# 필요한 정보 추출
title = soup.h1.text

# 파일로 저장
with open('output.txt', 'w') as f:
    f.write(title)

위 예제에서는 requests 라이브러리를 사용하여 웹 페이지의 내용을 가져옵니다. 가져온 내용을 BeautifulSoup을 이용하여 파싱하고, 필요한 정보를 추출한 후, 파일로 저장합니다.

마무리

BeautifulSoup은 파이썬에서 웹 페이지 스크랩핑을 할 때 매우 유용한 도구입니다. HTML 문서나 XML 문서를 파싱하여 필요한 정보를 추출할 수 있으며, 이를 이용하여 다양한 작업을 할 수 있습니다.