ABOUT ME

IT와 컴퓨터 관련 팁, 파이썬 등과 아파트 정보, 일상적인 경험 등의 생활 정보를 정리해서 올리는 개인 블로그

  • 네이버 쇼핑 관련 자동완성어, 연관검색어, 추천키워드 추출
    코딩 연습/파이썬 크롤링 2022. 7. 3. 15:07
    반응형

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

     

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

     

     

     

    마우스 우클릭하여 새 텝에서 열면 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('샷시')

     

    [실행 결과]

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

     

     

    반응형
Designed by goodthings4me.