[파이썬] 웹 스크래핑과 상품 정보 추출
웹 스크래핑은 웹 페이지에서 데이터를 추출하는 프로세스를 말합니다. 이는 다양한 분야에서 유용하게 활용되며, 상품 정보 추출은 그 중 하나입니다. 이번 블로그 포스트에서는 Python을 사용하여 웹 스크래핑을 통해 상품 정보를 추출하는 방법에 대해 알아보겠습니다.
필요한 라이브러리 설치하기
Python에서 웹 스크래핑을 수행하기 위해 다음과 같은 라이브러리를 설치해야 합니다.
- BeautifulSoup: 웹 페이지의 HTML 구조를 파싱하고 데이터를 추출하기 위한 라이브러리 입니다.
- Requests: 웹 페이지에 HTTP 요청을 보내고 응답을 받기 위한 라이브러리입니다.
아래의 명령어를 사용하여 필요한 라이브러리를 설치합니다.
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을 사용하여 웹 스크래핑을 수행하고 상품 정보를 추출하는 방법에 대해 알게 되었습니다. 이를 활용하면 간단하게 원하는 웹 페이지에서 상품 정보를 추출할 수 있습니다.