본문 바로가기
코딩 연습/파이썬 크롤링

네이버 쇼핑 관련 자동완성어, 연관검색어, 추천키워드 추출

by good4me 2022. 7. 3.

goodthings4me.tistory.com

파이썬 크롤링으로 네이버 쇼핑 관련 자동완성어, 연관검색어, 추천키워드 추출해본다. 여러 키워드를 리스트로 만들어서 각 항목에 적용시킨 후, 텍스트나 엑셀로 저장하도록 만들면 하나의 키워드 추출 솔루션이 될 수 있다.

 

네이버 쇼핑 자동완성어 추출

 

 

 

마우스 우클릭하여 새 텝에서 열면 URL이 "https://shopping.naver.com/api/modules/gnb/auto-complete?keyword=테"로 표시된다. 이 URL에서 "keyword=테"를 텐트로 하면 아래 이미지처럼 텐트 검색어에 대한 네이버쇼핑 자동완성어가 보인다.

 

 

{"query":["텐트","텐트","텐트"],"items":[[],[[["원터치텐트"],["4689"],["6446"],["N"]],[["텐트"],["2944"],["3586"],["N"]],[["그늘막 텐트"],["1257"],["1456"],["N"]],[["에어 텐트"],["1069"],["1907"],["N"]],[["돔 텐트"],["916"],["1156"],["N"]],[["차박텐트"],["801"],["1826"],["N"]],[["백패킹 텐트"],["572"],["591"],["N"]],[["루프탑텐트"],["434"],["1131"],["N"]],[["노스피크 에어텐트 a7ex"],["273"],["1443"],["N"]],[["터널 텐트"],["381"],["410"],["N"]],[["차박 도킹 텐트"],["370"],["486"],["N"]],[["모기장 텐트"],["307"],["799"],["N"]],[["코베아 텐트"],["310"],["727"],["N"]],[["면 텐트"],["311"],["357"],["N"]],[["원터치 그늘막텐트"],["287"],["342"],["N"]]],[],[],[[["캠핑>텐트"],["50001099"],["3"]],[["캠핑>텐트/타프용품"],["50009360"],["3"]],[["텐트/타프용품>기타텐트/타프용품"],["50009402"],["4"]],[["생활잡화>난방텐트"],["50007168"],["4"]],[["공간놀이기구>볼텐트/놀이텐트"],["50004232"],["4"]],[["낚시용품>낚시텐트"],["50003034"],["4"]]],[],[],[],[],[],[],[]]}

 

[파이썬 소스 코드]

import requests
from bs4 import BeautifulSoup
import json


## 네이버 쇼핑 자동완성어
def naver_shopping_keywords(search_word):
    url = 'https://shopping.naver.com/api/modules/gnb/auto-complete?keyword=' + search_word
    headers = {
        'User-Agent': ('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36')
    }    
    response = requests.get(url, headers=headers)
    json_str = response.text
    keywords = json.loads(json_str)
    # {"query":["텐트","텐트","텐트"], "items":[[],[[["원터치텐트"],["4689"],["6446"],["N"]],[["텐트"],["2944"],["3586"],["N"]],
    
    if keywords:
        # [[["원터치텐트"],["4689"],["6446"],["N"]],[["텐트"],["2944"],["3586"],["N"]],
        for auto_keywords in keywords['items'][1]:  
            print(auto_keywords[0][0])  # "원터치텐트", ...
            
 
 naver_shopping_keywords('텐트')

 

 

good4me.co.kr

 

[실행 결과]

원터치텐트
텐트
그늘막 텐트
에어 텐트
돔 텐트
차박텐트
백패킹 텐트
루프탑텐트
노스피크 에어텐트 a7ex
터널 텐트
차박 도킹 텐트        
모기장 텐트
코베아 텐트
면 텐트
원터치 그늘막텐트

 

 

네이버 쇼핑 연관검색어 추출

 

네이버 쇼핑 연관
네이버 쇼핑 연관

 

네이버 쇼핑 연관 개발자 도구
네이버 쇼핑 연관 개발자 도구

 

[파이썬 소스 코드]

import requests
from bs4 import BeautifulSoup

## 네이버 쇼핑 연관검색어 
def nshopping_rel_keyword(search_word):

    headers = {
        'User-Agent': ('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36')
    }    
    shop_rel_url = 'https://msearch.shopping.naver.com/search/all?query=' + search_word
    shop_rel_response = requests.get(shop_rel_url, headers=headers)
    shop_rel_soup = BeautifulSoup(shop_rel_response.text, 'html.parser')
    shop_rel_words = shop_rel_soup.select('div.relatedTag_scroll_area__37Cda > ul > li')
    print('\nshop_rel_keywords:', len(shop_rel_words))
    
    if len(shop_rel_words):
        for li in shop_rel_words:
            print(li.text)

nshopping_rel_keyword('샷시')

 

[실행 결과]

shop_rel_keywords: 30
알루미늄샷시
평철
샷시손잡이
강화유리
철문
유리문
스무버
신한벽지
전선가리개
캐릭터원피스
고정
아쿠아유리
원터치빠찌링
스페인타일
에어컨스티커
전선쫄대
보닥플레이트
높이조절의자
흰색
abs도어
천일카페트
창문
상판
나무몰딩
도어댐퍼
방문
컵핸들
포켓도어
유럽미장
거실바닥재

 

 

네이버 쇼핑 추천키워드 추출

 

▷ 네이버 쇼핑 검색 "샷시" 검색 결과, 키워드 추천 부분에 대해 추출

네이버 쇼핑 키워드 추천
네이버 쇼핑 키워드 추천

 

 

네이버 쇼핑 키워드 추천 개발자 도구
네이버 쇼핑 키워드 추천 개발자 도구

※ class 속성 "filter_finder_list__16XU5" 검색 시 2개가 보임. 이 중에서 2번째가 추천 키워드임

 

 

[파이썬 소스 코드]

import requests
from bs4 import BeautifulSoup

### 쇼핑 추천 키워드
def nshopping_rec_keyword(search_word):

    shop_recom_url = f'https://search.shopping.naver.com/search/all?query={search_word}&cat_id=&frm=NVSHATC#'
    res = requests.get(shop_recom_url)
    shop_recom = BeautifulSoup(res.text, 'html.parser')
    rec_uls = shop_recom.select('ul.filter_finder_list__16XU5')
    ## rec_uls 객체 2개 중 2번째(index 1)가 추천키워드임
    
    for li in rec_uls[1].select('li'):
        reco_keyword = li.find('span', class_='filter_text_over__3zD9c').text.strip()
        print(reco_keyword)


nshopping_rec_keyword('샷시')

 

[실행 결과]

창문샷시
베란다샷시
샷시레일  
샷시롤러  
샷시교체  
샷시로라  
창호샷시  
샷시부속 

 

 

댓글