데이터분석

[데이터 분석]크롤링을 활용한 쇼핑몰 키워드 기반 귤 상품 분석-1

Hong_1 2024. 1. 2. 17:17

1. 주제선정

겨울에는 귤!

주변에 귤을 좋아하는 사람들이 정말 많은데 구매에 도움이 되는 분석을 해 분석된 자료를 직접 활용해보기로 하였다.

 

2. 개요

우선 네이버, 우체국 마켓, 홈플러스 등의 사이트에서 귤이라는 키워드를 검색하고 리뷰가 많은 순으로 정렬하여 웹 크롤링을 통해 데이터를 csv 파일로 저장한 뒤 apriori 연관규칙 분석 알고리즘을 활용하여 키워드를 분석해보도록 하자.

 

3. 웹 크롤링

 

첫 번째로 네이버 쇼핑에서 귤을 검색하면 나오는 이 페이지를 기준으로 셀레니움을 활용하여 크롤링을 진행해보기로 하였다.

 위와 같은 코드로 코랩에서 셀레니엄 사용 설정을 하고 URL에 해당 주소를 넣어 URL을 설정해준다.

 

그 다음 다음 화면처럼 리뷰가 많은 순으로 상품을 정렬하여 크롤링을 진행하기 위해 DevTool을 활용하여 xPath값을 찾아 아래 코드에 넣어 실행하여준다.

 

 

이제 아래 코드를 통해 2번째 페이지까지 스크롤을 내려가며 이름, 가격, 리뷰 개수 등의 정보를 추출한다.

#이름, 가격, 리뷰 개수
names= []
prices= []
review_cnts = []

#2페이지까지 반복
for i in range(1,3):
  driver.get('https://search.shopping.naver.com/search/all?frm=NVSCPRO&origQuery=%EA%B7%A4&pagingIndex={0}&pagingSize=40&productSet=total&query=%EA%B7%A4&sort=review×tamp=&viewType=list')

  while True:
      bh = driver.execute_script("return document.body.scrollHeight") #브라우저 상 처음 높이
      print(bh)
      time.sleep(4)
      driver.execute_script("window.scrollTo(0, document.body.scrollHeight)") #스크롤 내리기
      time.sleep(2)
      ah = driver.execute_script("return document.body.scrollHeight")
      if ah == bh:
          break
      bh = ah
  infos = driver.find_elements(By.CSS_SELECTOR, ".product_info_area__xxCTi")
  for info in infos:
      try:
          name = info.find_element(By.CSS_SELECTOR, '.product_title__Mmw2K').text #이름 저장
          names.append(name)
          price = info.find_element(By.CSS_SELECTOR, '.product_price_area__eTg7I').text #가격 저장
          prices.append(price)
          review_cnt = info.find_element(By.CSS_SELECTOR, '.product_etc__LGVaW').text #리뷰수 저장
          review_cnts.append(review_cnt)
      except:
          print('Exception')
driver.close()

 

이 결과를 통해 나온 값들을 pandas 라이브러리를 이용해 저장한다.

#pandas 라이브러리 이용해서 저장
import pandas as pd
df = pd.DataFrame({'name':names, 'price':prices, 'review_cnt':review_cnts})
print(df)

 

그러면 다음과 같은 결과가 나오는 것을 확인할 수 있다.

 

이제 csv 파일로 저장하고 파일을 확인해보자.

#csv 파일로 저장
df.to_csv('./best_tangerine1.csv', sep = ",", encoding= "utf-8-sig" )

[best_tangerine1.csv 파일]

 

파일을 확인해본 결과 위 이미지처럼 성공적으로 저장된 것을 확인할 수 있었다.

 

이제 이와 같은 방법으로 추가적으로 홈플러스, 우체국 마켓에서 크롤링을 진행해보자.

 

다음 포스팅에서는 크롤링을 통해 생성된 데이터를 활용해 연관규칙을 분석하고 해석해 보도록 하자.

https://anhong1.tistory.com/8

 

[데이터 분석]크롤링을 활용한 쇼핑몰 키워드 기반 귤 상품 분석-2

이번 포스팅에서는 이전 포스팅에서 다루었던 크롤링을 통해 생성된 데이터를 활용해 연관규칙을 분석하고 해석해 볼 것이다. 이전 포스팅 https://anhong1.tistory.com/7 [데이터 분석]크롤링을 활용한

anhong1.tistory.com