[파이썬] 웹 페이지의 데이터 저장과 출력

Python은 웹 페이지의 데이터를 저장하고 출력하는 데 매우 강력한 도구입니다. 웹 크롤링 및 스크래핑과 같은 작업을 수행하여 웹 페이지에서 데이터를 추출하고, 이를 로컬 컴퓨터에 저장하거나 웹 페이지에 출력할 수 있습니다. 이번 포스트에서는 Python을 사용하여 웹 페이지의 데이터를 저장하고 출력하는 방법에 대해 알아보겠습니다.

데이터 저장하기

Python에서는 request 모듈을 사용하여 웹 페이지에 GET 요청을 보낼 수 있습니다. 해당 웹 페이지의 HTML을 가져와 원하는 데이터를 추출합니다. 이를 위해 BeautifulSoup 라이브러리를 사용할 수 있습니다. BeautifulSoup은 HTML 및 XML 문서를 분석하고 데이터를 추출하는 데 사용되는 파싱 라이브러리입니다.

다음은 예시입니다.

import requests
from bs4 import BeautifulSoup

# 웹 페이지에 GET 요청 보내기
response = requests.get("https://www.example.com")

# HTML을 파싱하기
soup = BeautifulSoup(response.content, "html.parser")

# 원하는 데이터 추출하기
data = soup.find("h1").text

# 데이터 저장하기
with open("data.txt", "w") as file:
    file.write(data)

위의 예시에서는 “https://www.example.com” 주소로 GET 요청을 보내고, 응답으로 받은 HTML을 파싱하여 <h1> 태그 안에 있는 텍스트를 추출합니다. 추출한 데이터는 “data.txt”라는 파일에 저장됩니다.

데이터 출력하기

데이터를 저장하는 것 외에도 Python을 사용하여 웹 페이지에 데이터를 출력할 수도 있습니다. 여기서는 Flask 라이브러리를 사용하여 간단한 웹 애플리케이션을 생성하고, 사용자에게 저장된 데이터를 보여줄 것입니다.

다음은 예시입니다.

from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")
def display_data():
    # 저장된 데이터를 가져오기
    with open("data.txt", "r") as file:
        data = file.read()

    return render_template("index.html", data=data)

if __name__ == "__main__":
    app.run()

위의 예시에서는 Flask 애플리케이션을 생성하고, 루트 URL(“/”)로 요청이 들어오면 display_data 함수가 호출됩니다. 이 함수는 앞서 저장한 데이터를 읽어와 index.html 템플릿에 데이터를 전달합니다. 이 템플릿은 사용자에게 데이터를 보여주는 역할을 합니다.

index.html 파일은 다음과 같이 작성할 수 있습니다.


<!DOCTYPE html>
<html>
<head>
    <title>Data Display</title>
</head>
<body>
    <h1>Stored Data:</h1>
    <p>{{ data }}</p>
</body>
</html>

위의 예시에서는 Flask의 템플릿 엔진을 사용하여 data 변수의 내용을 HTML에 표시합니다.

이제 Flask 애플리케이션을 실행하고 웹 브라우저에서 “http://localhost:5000” 주소로 접속하면 저장한 데이터가 화면에 표시됩니다.

이처럼 Python을 사용하여 웹 페이지의 데이터를 저장하고 출력할 수 있습니다. 이를 바탕으로 크롤링, 데이터 분석, 웹 애플리케이션 개발 등 다양한 작업을 수행할 수 있습니다.