개요
웹 스크래핑은 웹 페이지에서 데이터를 추출하는 프로세스를 의미합니다. 음식 배달 서비스에서는 웹 스크래핑을 통해 식당 메뉴, 가격, 리뷰 등의 정보를 추출하여 고객들에게 제공합니다. 이 글에서는 Python을 사용하여 웹 스크래핑을 통해 음식 배달 정보를 추출하는 방법에 대해 알아보겠습니다.
라이브러리 설치
웹 스크래핑을 위해 다음과 같은 Python 라이브러리를 설치해야 합니다.
- beautifulsoup4: HTML과 XML 파일에서 데이터를 추출하기 위한 라이브러리
- requests: HTTP 요청을 보내고 응답을 받기 위한 라이브러리
pip
명령어를 사용하여 라이브러리를 설치해주세요.
pip install beautifulsoup4 requests
BeautifulSoup으로 웹 페이지 파싱하기
Python의 BeautifulSoup 라이브러리를 사용하여 웹 페이지를 파싱합니다. 아래 예제는 음식 배달 서비스에서 식당 메뉴 정보를 추출하는 과정을 보여줍니다.
import requests
from bs4 import BeautifulSoup
# 웹 페이지 요청 보내기
url = "https://www.deliveryservice.com/menu"
response = requests.get(url)
# 응답 받은 HTML 파싱하기
soup = BeautifulSoup(response.text, "html.parser")
# 메뉴 정보 추출하기
menu_items = soup.find_all("div", class_="menu-item")
for item in menu_items:
name = item.find("h3").text
price = item.find("span", class_="price").text
description = item.find("p", class_="description").text
print(f"메뉴: {name}\n가격: {price}\n설명: {description}\n")
위 코드에서는 requests
라이브러리를 사용하여 웹 페이지에 HTTP 요청을 보내고, BeautifulSoup
객체를 사용하여 응답 받은 HTML을 파싱합니다. find_all
메서드를 사용하여 메뉴 아이템들을 추출하고, 각 아이템에서 필요한 정보를 찾아 출력합니다.
데이터 저장하기
추출한 음식 배달 정보를 필요에 따라 데이터베이스에 저장하고, 나중에 분석이나 가공에 활용할 수 있습니다. 데이터 저장에는 Python 라이브러리 중 하나인 sqlite3
를 사용할 수 있습니다.
import sqlite3
# SQLite 데이터베이스 연결
conn = sqlite3.connect("delivery.db")
cursor = conn.cursor()
# 테이블 생성
cursor.execute("""
CREATE TABLE IF NOT EXISTS menu (
name TEXT,
price TEXT,
description TEXT
)
""")
# 데이터 저장
for item in menu_items:
name = item.find("h3").text
price = item.find("span", class_="price").text
description = item.find("p", class_="description").text
cursor.execute("INSERT INTO menu VALUES (?, ?, ?)", (name, price, description))
# 변경사항 저장
conn.commit()
# 연결 종료
conn.close()
위 코드에서는 sqlite3
라이브러리를 사용하여 SQLite 데이터베이스를 연결하고, menu
테이블을 생성합니다. 그리고 INSERT INTO
문을 사용하여 데이터를 저장합니다.
결론
Python을 사용하여 웹 스크래핑을 통해 음식 배달 정보를 추출하는 방법에 대해 알아보았습니다. BeautifulSoup 라이브러리를 활용하여 웹 페이지를 파싱하고, 필요한 데이터를 추출할 수 있었습니다. 또한, 데이터를 저장하는 방법에 대해서도 알아보았습니다. 이를 활용하여 음식 배달 서비스에 유용한 기능을 추가할 수 있을 것입니다.