[파이썬] 웹 스크래핑과 상품 정보 추출

웹 스크래핑은 웹 페이지에서 데이터를 추출하는 프로세스를 말합니다. 이는 다양한 분야에서 유용하게 활용되며, 상품 정보 추출은 그 중 하나입니다. 이번 블로그 포스트에서는 Python을 사용하여 웹 스크래핑을 통해 상품 정보를 추출하는 방법에 대해 알아보겠습니다.

필요한 라이브러리 설치하기

Python에서 웹 스크래핑을 수행하기 위해 다음과 같은 라이브러리를 설치해야 합니다.

아래의 명령어를 사용하여 필요한 라이브러리를 설치합니다.

pip install beautifulsoup4
pip install requests

웹 페이지에서 상품 정보 추출하기

웹 페이지에서 상품 정보를 추출하는 경우, 먼저 상품이 나열되어 있는 페이지의 URL을 알아야 합니다.

import requests
from bs4 import BeautifulSoup

url = "https://www.example.com/products"

# 웹 페이지에 HTTP 요청 보내기
response = requests.get(url)

# 응답의 HTML 내용 가져오기
html_content = response.text

# BeautifulSoup을 사용하여 HTML 파싱
soup = BeautifulSoup(html_content, "html.parser")

# 상품 정보 추출
products = soup.find_all("div", class_="product")

for product in products:
    # 상품의 제목 추출
    title = product.find("h2").text
    
    # 상품의 가격 추출
    price = product.find("span", class_="price").text
    
    # 추출한 상품 정보 출력
    print("상품 제목:", title)
    print("가격:", price)

위의 예시 코드에서는 requests를 사용하여 웹 페이지에 HTTP 요청을 보내고, BeautifulSoup을 사용하여 HTML을 파싱합니다. 그리고 find_all 메서드를 사용하여 div 태그 중 class가 “product”인 요소들을 추출합니다. 이후 각 상품 요소에서 제목과 가격을 추출하여 출력합니다.

데이터 저장하기

추출한 상품 정보를 파일로 저장하고 싶다면, 다음과 같이 코드를 수정할 수 있습니다.

import csv

# 파일 열기
with open("products.csv", "w", newline="") as csv_file:
    # CSV 작성자 생성
    writer = csv.writer(csv_file)
    
    # 헤더 작성
    writer.writerow(["상품 제목", "가격"])
    
    # 상품 정보 작성
    for product in products:
        title = product.find("h2").text
        price = product.find("span", class_="price").text
        
        # CSV에 작성
        writer.writerow([title, price])

위의 코드에서는 csv 모듈을 사용하여 csv.writer를 생성하고, 파일을 열어 상품 정보를 작성합니다. 헤더로는 “상품 제목”과 “가격”을 작성하고, 각 상품 정보를 행으로 작성합니다.

이제 Python을 사용하여 웹 스크래핑을 수행하고 상품 정보를 추출하는 방법에 대해 알게 되었습니다. 이를 활용하면 간단하게 원하는 웹 페이지에서 상품 정보를 추출할 수 있습니다.