[python] 파이썬 BeautifulSoup과 웹 사이트 찜 기능 추가

이번 포스트에서는 파이썬의 BeautifulSoup 라이브러리를 사용하여 웹 사이트에서 정보를 추출하는 방법과 웹 사이트의 찜 기능을 추가하는 방법에 대해 알아보겠습니다.

BeautifulSoup 소개

BeautifulSoup은 파이썬에서 HTML 및 XML 문서를 구문 분석하고 웹 사이트의 정보를 추출하는 데 사용되는 라이브러리입니다. 이 라이브러리는 우리가 웹 스크래핑을 할 때 유용하게 사용됩니다.

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

pip install beautifulsoup4

웹 사이트의 정보 추출하기

BeautifulSoup을 사용하여 웹 사이트에서 정보를 추출하는 것은 간단합니다. 먼저, 웹 사이트의 HTML 코드를 가져온 다음, BeautifulSoup 객체를 생성하여 이 코드를 구문 분석합니다. 이후에는 CSS 선택자를 사용하여 원하는 정보를 추출할 수 있습니다.

다음은 예제 코드입니다:

import requests
from bs4 import BeautifulSoup

# 웹 사이트의 HTML 코드 가져오기
url = "https://example.com"
response = requests.get(url)
html = response.text

# BeautifulSoup 객체 생성
soup = BeautifulSoup(html, "html.parser")

# CSS 선택자를 사용하여 정보 추출
title = soup.select_one("h1").text
description = soup.select_one("p").text

print("Title: ", title)
print("Description: ", description)

이 예제에서는 requests 모듈을 사용하여 웹 사이트의 HTML 코드를 가져옵니다. 그 후, BeautifulSoup 객체를 생성하여 CSS 선택자를 사용하여 제목과 설명을 추출합니다.

웹 사이트에 찜 기능 추가하기

웹 사이트에 찜 기능을 추가하는 것은 사용자가 웹 페이지에서 특정 항목을 저장하고 추후에 다시 찾을 수 있도록 하는 것을 의미합니다. 이를 위해서는 데이터베이스나 파일 시스템을 사용하여 사용자의 찜 목록을 저장해야 합니다.

다음은 간단한 예제 코드입니다:

import sqlite3

# 데이터베이스 연결
conn = sqlite3.connect("wishlist.db")
cursor = conn.cursor()

# 찜 목록 테이블 생성
cursor.execute("CREATE TABLE IF NOT EXISTS wishlist (id INTEGER PRIMARY KEY AUTOINCREMENT, item TEXT)")

# 아이템을 찜 목록에 추가하는 함수
def add_to_wishlist(item):
    cursor.execute("INSERT INTO wishlist (item) VALUES (?)", (item,))
    conn.commit()
    print("Added to wishlist: ", item)

# 모든 찜 목록을 가져오는 함수
def get_wishlist():
    cursor.execute("SELECT * FROM wishlist")
    wishlist = cursor.fetchall()
    return wishlist

# 아이템을 찜 목록에서 제거하는 함수
def remove_from_wishlist(item_id):
    cursor.execute("DELETE FROM wishlist WHERE id=?", (item_id,))
    conn.commit()
    print("Removed from wishlist")

# 데이터베이스 연결 종료
conn.close()

이 예제에서는 sqlite3 모듈을 사용하여 SQLite 데이터베이스를 생성하고 찜 목록을 저장합니다. add_to_wishlist 함수는 사용자가 특정 아이템을 찜 목록에 추가할 때 호출되며, get_wishlist 함수는 모든 찜 목록을 가져옵니다. remove_from_wishlist 함수는 사용자가 찜 목록에서 아이템을 제거할 때 호출됩니다.

위의 함수들을 사용하여 웹 페이지에서 찜 기능을 구현할 수 있습니다. 예를 들어, 사용자가 웹 페이지에서 “찜하기” 버튼을 클릭하면 해당 항목을 찜 목록에 추가하고, 웹 페이지에서 표시되는 찜 목록의 항목들을 get_wishlist 함수를 사용하여 가져온 후에 표시할 수 있습니다.

마무리

이번 포스트에서는 파이썬의 BeautifulSoup 라이브러리를 사용하여 웹 사이트에서 정보를 추출하는 방법과 웹 사이트에 찜 기능을 추가하는 방법에 대해 알아보았습니다. BeautifulSoup을 이용하면 웹 스크래핑을 간편하게 할 수 있으며, 데이터베이스나 파일 시스템을 이용하여 웹 사이트에 찜 기능을 추가할 수 있습니다. 이러한 기능들을 활용하여 사용자에게 더 나은 웹 경험을 제공할 수 있습니다.

참고 자료