본문 바로가기

Coding/Python

네이버 쇼핑 특정 카테고리 인기상품 Top 100 크롤링해서 엑셀파일에 저장하기

반응형

늦깎이 코딩 공부이지만 뭐든지 새로운 것을 알아간다는 것이 행복하다는 것을 최근 다시 깨닫고 있습니다. 파이썬을 이용해서 실무에서 데이터 분석도 할 줄 아는 PM이 되기 위해 노력 중입니다. 오늘은 네이버 쇼핑의 특정 카테고리의 인기 상품 Top 100의 상품명과 가격을 크롤링하여 엑셀에 저장하는 코드를 작성해 보았습니다.

 

물론 잔재미코딩님의 강의용 코드 소스를 기본으로 해서 네이버 쇼핑 사이트를 기준으로 연습을 해 본 것인데, 몇 번의 오류와 오타 수정을 통해 제가 원하는 데이터를 추출해서 엑셀에 저장할 수 있다는 것만으로도, 한 단계 발전한 느낌입니다.

 

import openpyxl
import requests
from bs4 import BeautifulSoup

def write_excel_template2(filename, sheetname, listdata):
    excel_file = openpyxl.Workbook()
    excel_sheet = excel_file.active
    excel_sheet.column_dimensions['A'].width = 80

    if sheetname != '':
        excel_sheet.title = sheetname

    for item in listdata:
        excel_sheet.append(item)

    excel_file.save(filename)
    excel_file.close()

res = requests.get('https://search.shopping.naver.com/best100v2/detail.nhn?catId=50000001')
soup = BeautifulSoup(res.content, 'html.parser')

keywords = list()
keyword = soup.select('li._itemSection')

for data2 in keyword:
    name = data2.select_one('p.cont')
    # 상품명 추출하기
    price = data2.select_one('div.price span.num')
    # 가격 추출하기
    product_info = [name.get_text().strip(), price.get_text()]
    # 상품명과 가격을 변수에 저장하기
    keywords.append(product_info)
    # 리스트변수에 append 함수를 이용해서 리스트에 추가하기


write_excel_template2('naver.xlsx', '인기키워드', keywords)
# 엑셀 생성을 위한 메서드 호출하기


반응형