본문 바로가기
Python

[파이썬] 네이버 실시간 인기 쇼핑 키워드 크롤링 추출

by 퍼포먼스마케팅코더 2022. 7. 28.
반응형

파이썬 네이버 실시간 인기 쇼핑 키워드 크롤링 추출

오늘은 뭐냐 하면 이게 보니까 네이버 이거 안에 보시면 네이버 카테고리 베스트라는 곳이 있습니다. 네이버 쇼핑 안에서 트렌드 키워드라는 게 있어요. 그래서 카테고리 베스트라는 것이 뭐냐하면 네이버 쇼핑에서 입점돼 있던 상품 대해서 많이 본 상품 이런 거를 혹은 많이 구매했었던 것을 트렌드 키워드 이런 걸로 제공을 해준다고 합니다. 그래서 특히나 트렌드 키워드라는 거는 네이버 쇼핑에서 검색을 많이 한 키워드 혹은 급상승한 키워드를 뽑아서 보여준다고 나와 있거든요. 

파이썬 네이버 실시간 인기 쇼핑 키워드 크롤링 추출

 

근데 이게 아까 좋은 점이 이미 보셔서 아시겠지만 연령대별 성별 연령대별로도 이렇게 쪼개서 확인이 가능합니다. 그래서 그게 아래 이미지와 같이 이렇게 한 상위 한 20개 정도의 키워드를 노출을 해줘요. 쇼핑 키워드로 노출을 해줍니다. 그래서 이게 편리하게끔 되어 있는데 흔히 말씀드리지만 우리 직장인들은 시간이 없잖아요. 그래서 제가 이걸 파이선 코딩으로 한번 만들어봤습니다.

파이썬 네이버 실시간 인기 쇼핑 키워드 크롤링 추출

 

파이썬으로 만들어 놓았는데 의외로 이제 여기 보면 아까 말씀드렸던 연령별 성별 이것에 따른 변수도 적을 수 있고요 그다음에 카테고리 아이디가 있습니다 해서 카테고리 아이디 내에서 여러 가지가 있잖아요. 패션 의류 화장품 디지털 출산 가구 스포츠 레저부터 해서 여가 생활 편의까지 이게 다양한 카테고리가 있습니다 해서 카테고리별로 다 쪼개서 검색 결과를 치면 아래와 같이 나옵니다. 아까도 말씀드렸지만 20개의 상위 급상승 키워드들이 볼 수 있어서 그것에 따라서 네이버 검색량까지 확인을 해버리면 무슨 상품이 상품 키워드가 근데 지금 뜨고 있구나라는 거를 빠르게 볼 수 있을 것 같아서 유용할 것 같다. 싶어서 이렇게 가져와 봤습니다. 그래서 파이선 코딩 이 밑에 있는 것들도 다 똑같은 내용이에요. 그래서 검색만 치면 바로 다 나옵니다. 그래서 유용하게 쓸 수 있겠다 싶어서 이렇게 가져와 봤습니다. 여기까지입니다.

 

파이썬 네이버 실시간 인기 쇼핑 키워드 크롤링 추출

 

import requests
from    bs4      import BeautifulSoup
import json 

"""
age_gender
A00 #전체
M01 #10대 남성
M02 #20대 남성
M03 #30대 남성
M04 #40대 남성
M05 #50대 남성
F01 #10대 여성
F02 #20대 여성
F03 #30대 여성
F04 #40대 여성
F05 #50대 여성

categoryCategoryId
ALL  #전체
50000000 #패션의류
50000001 #패션잡화
50000002 #화장품미용
50000003 #디지털가전
50000004 #가구인테리어
50000005 #출산육아
50000006 #식품
50000007 #스포츠레저
50000008 #생활건강
50000009 #여가생활편의

"""
category_id ='ALL'
age_gender = 'A00' #연령대별

url = 'https://search.shopping.naver.com/best/category/keyword?categoryCategoryId={}&categoryDemo={}&categoryRootCategoryId=ALL&chartRank=1&period=P1D'.format(category_id,age_gender) 

headers = { 'Accept-Language' : 'ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7,zh-TW;q=0.6,zh;q=0.5',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36',
            'Accept-Encoding': 'gzip'
}

raw = requests.get(url=url, headers=headers)

html = BeautifulSoup(raw.text, 'html.parser')

#HTML 에 포함된 Javascript 태그의 json 크롤링
test =html.find('script', {'id' : '__NEXT_DATA__'}).text #텍스트만

dict_result = json.loads(test) # json으로 변환

popular_kws = dict_result['props']['pageProps']['dehydratedState']['queries'][2]['state']['data']['charts']

for popular_kw in popular_kws :
    rank = popular_kw['rank'] #순위
    real_kw = popular_kw['exposeKeyword'] #키워드
    print(str(rank) + '순위 키워드 : ' + str(real_kw))
반응형

댓글