본문 바로가기
Python

[python] 네이버쇼핑 실시간 디지털가전 인기 키워드 검색어 크롤링 추출

by 퍼포먼스마케팅코더 2022. 8. 31.
반응형

python 네이버쇼핑 실시간 디지털가전 인기 키워드 검색어 크롤링 추출

 

이거는 이전에 네이버 쇼핑에서 인기 키워드 검색어를 크로링 하는 것에 대해서 가지고 와봤습니다. 근데 아주 기초적인 것만 가지고 오는 거기 때문에 아쉬워하시는 부분들이 있으실 것 같아서 이번에는 뭘 가지고 왔냐면은 디지털 가전이 있지 않습니까? 이 디지털 가전에서 실시간으로 인기 키워드의 검색어를 전부 다 크롤링 즉 추출해서 가지고 오는 것을 제가 파이썬 코딩으로 가져왔습니다.

 

이거 여러분들 복사 붙여넣기만 넣으셔서 파이썬으로 코딩만 돌리시면 키워도 다 나오실 거예요. 거의 다 나오기 때문에 별다른 이유가 없으면 이거 키워드가 대량으로 나올 것으로 예상이 됩니다. 말씀드리자면 대략적으로 코딩만 설명을 해드릴게요 먼저 Beautiful Soup로 해서 텍스트 몇 개를 크롤링을 해놓고 이거를 Json으로 변환을 해서 가지고 옵니다. 이제 Json 에서 몇몇 개의 키워드 부분이 있더라고요? 그거 차트 내에 있는 키워드 데이터가 있어서 데이터만 지금 가지고 오는 거다라고 보시면 될 것 같습니다.

 

가전 디지털 가전 쪽으로만 보시면 어떤 키워드가 뜨는가 이거에 대해서 많이 궁금하잖아요? 특히 실시간으로 검색어 이런 것에 많이 민감해하시는 스마트 스토어 운영하시는 분들, 블로그하시는 분들 등등 다양한 분들이 계실 텐데 그것에 따라서 참고용으로 뭔가 글 쓰는 데 도움이 될 만한 그걸로 해서 가지고 왔습니다.

 

뒤로 보시자면 어떤 키워드가 인기가 있는가 그거를 참고를 하시는데 많이 도움이 될 것 같아요. 여기 보시면 아시겠지만 이렇게 대분류에서 디지털 가전 내에 중분류로 되어 있었던 것에 실시간으로 각각마다 한 20개씩의 인기 키워드를 가지고 옵니다. 그렇기 때문에 여기 중분류 카테고리가 많아요. 한 대략 조금만 보더라도 거의 한 20개는 넘게 있는데 거의 한 4~ 500개의 키워드가 바로 크롤링해서 나온다고 보시면 될 것 같습니다. 이외에는 참고용으로만 보시면 될 것 같네요.

 

import requests
from    bs4      import BeautifulSoup
import json 
import time

#categoryRootCategoryId = '50000003' #디지털가전 #대분류

#50000087 학습기기
#50000088 게임기/타이틀
#50000089 PC
#50000090 PC 악세서리
#50000091 노트북 악세서리
#50000092 태블릿 PC 악세서리
#50000093 모니터주변기기
#50000094 주변기기
#50000095 멀티미디어장비
#50000096 저장장치
#50000097 PC부품
#50000098 네트워크장비
#50000099 소프트웨어
#50000151 노트북
#50000152 태블릿PC
#50000153 모니터
#50000204 휴대폰
#50000205 휴대폰 악세서리
#50000206 캠코더/캠코더용품
#50000208 영상가전
#50000209 음향가전
#50000210 생활가전
#50000211 이미용가전
#50000212 계절가전
#50000213 주방가전
#50000214 자동차기기

categoryRootCategoryId = '50000003' #디지털가전 #대분류
categoryMidCategoryIds = ['50000087',
'50000088',
'50000089',
'50000090',
'50000091',
'50000092',
'50000093',
'50000094',
'50000095',
'50000096',
'50000097',
'50000098',
'50000099',
'50000151',
'50000152',
'50000153',
'50000204',
'50000205',
'50000206',
'50000208',
'50000209',
'50000210',
'50000211',
'50000212',
'50000213',
'50000214'] #중분류  

for categoryMidCategoryId in categoryMidCategoryIds :

    url_2 = 'https://search.shopping.naver.com/best/category/keyword?categoryCategoryId={}&categoryChildCategoryId=&categoryDemo=A00&categoryMidCategoryId={}&categoryRootCategoryId={}&chartRank=1&period=P7D'.format(categoryMidCategoryId,categoryMidCategoryId,categoryRootCategoryId)

    raw = requests.get(url=url_2, 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으로 변환

    #print(dict_result)
    #popular_kws = dict_result['props']['pageProps']['dehydratedState']['queries'][1]['state']['data']['charts']

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

    for popular_kw in popular_kws :
        rank = popular_kw['rank'] #순위
        real_kw = popular_kw['exposeKeyword'] #키워드
        real_kw = real_kw.replace(" ", "")
        #print(str(rank) + '순위 키워드 : ' + str(real_kw))
        print(str(real_kw))
    time.sleep(1) #1초
반응형

댓글