
쿠팡 물품 랭킹 크롤링
이번엔 쿠팡에서 판매하는 물품의 랭킹을 가져오는 프로그램을 만들어볼게요.
파이썬에서 데이터 스크래핑, 웹 크롤링을 해서 엑셀에 저장하려면
"BeautifulSoup"와 "requests", "openpyxl" 모듈이 필요합니다.
그런데 모듈을 설치하지 않은 채로 코드를 실행하면 ModuleNotFoundError로 실행이 되지 않습니다.
설치 방법은 간단합니다.
아래 TERMINAL 창에
pip install requests
pip install bs4
pip install openpyxl
를 각각 입력하면 알아서 다운로드하고 설치해줍니다.


챗GPT에 "쿠팡 랭킹 가져오는 파이썬 코드 알려줘", "엑셀에 데이터를 저장하는 파이썬 코드 만들어줘" 라는 검색어를 사용해서 코드를 만들어 봤습니다. 에러가 나면 에러 메세지를 구글에 찾아가며 해결하거나 챗GPT에 물어보면서 해결했습니다.
코드는 아래와 같습니다. #뒤에 입력한 것은 주석으로, 코드에 영향을 주지 않으면서 메모나 설명을 할 수 있습니다.
import requests
from bs4 import BeautifulSoup from openpyxl import Workbook from datetime import datetime #입력한 키워드로 쿠팡 랭킹 가져오는 함수 def get_coupang_ranking(search_query): url = f'https://www.coupang.com/np/search?q={search_query}&page=1' #쿠팡 검색 url coupang_url =f'https://www.coupang.com/' #쿠팡 url headers = requests.utils.default_headers() #헤더 값을 넣어줘야 url로 요청한 것의 리턴이 됨. headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36", "Accept-Language": "ko-KR,ko;q=0.8,en-US;q=0.5,en;q=0.3"} response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') #BeautifulSoup로 요청한 페이지 html의 모든 데이터를 저장함 rankings = [] items = soup.find_all('li', class_='search-product') #li 태그의 search-product 클래스 내부 데이터를 찾음. 태그 기반으로 검색 가능. loopCount = 0 for index, item in enumerate(items, start=1): #저장한 items들을 순차적으로 검색함. product_name = item.find('div', class_='name').get_text(strip=True) #div 태그의 name 클래스에 있는 text를 가져옴 price = item.find('strong', class_='price-value').get_text(strip=True) #strong 태그의 price-value 클래스에 있는 text를 가져옴 img = item.find('img', class_='search-product-wrap-img')['src'] #img 태그의 search-product-wrap-img 클래스에 있는 src 속성값을 가져옴 link = item.find('a')['href'] #a태그의 href 속성값을 가져옴 rankings.append({'rank': index, 'Product Name': product_name, 'Price':price+'원', 'img': img, "link":coupang_url+link}) #rankings 배열에 값들을 순차적으로 적음 loopCount = loopCount+1 if loopCount >= 10 : return rankings #10개를 채우면 반복문 종료 return rankings #현재시간 가져오기 current_time = datetime.now() formatted_datetime = current_time.strftime("%Y%m%d_%H%M%S") #엑셀 파일에 사용할 년월일_시분초를 양식에 맞춰 가져옴 search_query = input("쿠팡에서 검색할 상품을 입력하세요: ") #search_query 변수에 입력값을 저장 rankings = get_coupang_ranking(search_query) #get_coupang_ranking 함수를 호출해서 결과값을 저장함. wb = Workbook() #엑셀을 이용하기 위해 Workbook을 생성 ws = wb.create_sheet(search_query) #입력값을 이용해서 Sheet 생성 ws.append(['순위', '상품명', '가격', '이미지', '판매링크']) #시트 맨 윗 행에 저장할 값을 넣어줌 data=[] if rankings: #ranking에 데이터가 있으면 print(f"{search_query}의 쿠팡 상품 순위:") #입력값을 출력 for rank_info in rankings: #rangkings의 데이터를 순차적으로 rank_info에 입력하면서 print(rank_info) #데이터를 출력 ws.append([rank_info['rank'], rank_info['Product Name'], rank_info['Price'], rank_info['img'], rank_info['link']]) #데이터를 work sheet에 하나씩 기록 wb.save('쿠팡랭킹_'+formatted_datetime+'.xlsx') #기록한 데이터를 .xlsx 파일로 생성 else: print("검색 결과가 없습니다.") |
|
사용자 폴더에 쿠팡랭킹_날짜.xlsx 파일이 생성됐습니다.

생성된 엑셀파일의 내용입니다. 지정한 시트이름에 데이터가 순차적으로 채워진걸 확인할 수 있습니다.

다음엔 챗GPT를 이용해서 원하는 내용을 가져오는 파이썬 코드를 작성해보겠습니다.
감사합니다.
반응형
'파이썬' 카테고리의 다른 글
파이썬! 시작부터 힘들다면? 차근 차근 따라가는 튜토리얼 - 5. 파이썬을 이용해서 Blogger 에 글을 올려보자! (0) | 2024.04.18 |
---|---|
파이썬! 시작부터 힘들다면? 차근 차근 따라가는 튜토리얼 - 4. Ai를 Python으로 이용해보자! (0) | 2024.04.14 |
파이썬! 시작부터 힘들다면? 차근 차근 따라가는 튜토리얼 - 2. Visual Studio Code (0) | 2024.04.13 |
파이썬! 시작부터 힘들다면? 차근 차근 따라가는 튜토리얼 - 1. 설치 (0) | 2024.04.13 |