본문 바로가기
Python

[파이썬] 통합검색 내 네이버, 다음 연관키워드 검색어 추출 크롤링

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

파이썬 통합검색 내 네이버, 다음 연관키워드 검색어 추출 크롤링

이거는 다른 건데 이거는 통합 검색 영역 이전 거는 네이버 쇼핑에 관련됐었던 연관 키워드를 가져오는 거고 통합 검색 내에서 보면 네이버 혹은 다음이죠. 다음에 뭐 연관 검색어라고 뜨는 게 있을 거예요. 그럴 때 키워드 부분들을 이렇게 다 통합을 해서 뭔가 볼 수 없을까 뭔가 효율적으로 뭔가 할 수 있을 게 없을까 다양한 키워드들이 나오지 않습니까? 근데 이거를 하나로 뭔가 취합을 해서 뭔가 보려고 하다 보면 늦어요. 저 같은 경우에는 이거를 어떻게 한눈에 다 볼 수 있도록 뭔가 해볼까라고 고민 고민을 해보다가 코딩으로 만들어봤습니다. 어차피 코딩만 길 뿐이지 실상은 뭐 그렇게 큰 내용 뭐 이런 거는 뭐 거의 없습니다.

파이썬 통합검색 내 네이버, 다음 연관키워드 검색어 추출 크롤링

총 세 가지인데 먼저 첫 번째 같은 경우에는 네이버 연관 검색어죠 첫 번째 이미지를 보면 이게 파이썬이라고 네이버 검색 결과에서 나온 겁니다. 그러면 옆에 연관 검색어다라고 해서 그게 떠요. 관련돼서 연관 검색어에 리스트를 다 긁어오는 겁니다. 

파이썬 통합검색 내 네이버, 다음 연관키워드 검색어 추출 크롤링

두 번째는 카카오인데 다음이죠. 다음에서 파이썬이라고 치면 말 그대로 자동 완성 검색어 그걸 줍니다. 리스트를 다 가지고 오는 거예요. 그게 두 번째일 것 같고요. 

파이썬 통합검색 내 네이버, 다음 연관키워드 검색어 추출 크롤링

그리고 마지막 세 번째는 파이썬이라고 검색어를 치지 않습니까 검색 결과가 나오면 옆에 관련 검색어다라고 해서 검색어 리스트가 나올 거예요. 키워드에 따른 연관 키워드를 보여주는 거다라고 생각하시면 될 것 같아요. 이거를 하나로 취합을 해서 가지고 오는 겁니다. 총 한 세 가지 영역 해서 가지고 오는 그건데 이것만 보시더라도 어떤 키워드가 연관 검색어로서 있는가 그런 것을 파악하시는 데 빠르실 거예요. 오늘은 아주 간단한 키워드입니다. 키워드 하나만 치면 통합 검색 영역 안에 있는 특히나 네이버 다음에 연관 키워드 이런 것들이 뭐가 있는지 그런 것들을 한 번에 다 취합을 해서 볼 수 있도록 그거를 코딩을 만들어놨습니다. 유용하게 키워드나 리서치나 이런 것이 필요하신 분들이 있다면 유용하게 쓰이지 않을까 싶어서 이렇게 가지고 와봤습니다.

 

 

import requests
from    bs4      import BeautifulSoup
import json 
import time

############################## 네이버 ##############################

keyword='크룩스'

try :
    url = 'https://search.naver.com/search.naver?sm=tab_hty.top&where=nexearch&query={}'.format(keyword) 

    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')
    test =html.find_all('div', {'class' : 'tit'}) #텍스트만
    print("=========================네이버 제안검색어 =========================")
    for i in test :
        related_kw = i.text
        related_kw = related_kw.replace("\t", "")
        related_kw = related_kw.replace("\n", "")
        related_kw = related_kw.replace(" ", "")
        print(related_kw)
except :
    print(str(keyword) +"의 네이버 연관검색어가 없습니다.")
    
    
time.sleep(1)

############################## 카카오 자동완성 (PC) ##############################

try :
    url = 'https://suggest.search.daum.net/sushi/pc/get?&q={}'.format(keyword)  #PC

    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')

    suggest_kws = json.loads(html.text)
    print("=========================카카오 자동완성 (PC) 검색어=========================")
    for i in suggest_kws['subkeys'] :
        print(i)
except :
    print(str(keyword) +"의 카카오 PC 자동완성 연관검색어가 없습니다.")
    
time.sleep(1)
############################## 카카오 자동완성 (모바일) ##############################

try :
    url = 'https://suggest.search.daum.net/sushi/mobile/get?&q={}'.format(keyword)   #모바일

    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')

    suggest_kws = json.loads(html.text)
    print("=========================카카오 자동완성 (모바일) 검색어=========================")
    for i in suggest_kws['subkeys'] :
        print(i)
except :
    print(str(keyword) +"의 카카오 모바일 자동완성 연관검색어가 없습니다.")

time.sleep(1)
############################## 카카오 제안검색어 ##############################

try :
    url = 'https://search.daum.net/search?w=tot&DA=YZR&t__nil_searchbox=btn&sug=&sugo=&sq=&o=&q={}'.format(keyword) 

    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')

    recommended_kws = []

    kws_lists = html.find_all('span', {'class' : 'wsn'})

    print("=========================카카오 제안검색어 =========================")
    for i in kws_lists :
        print(i.text)
except :
    print(str(keyword) +"의 카카오 제안검색어가 없습니다.")

time.sleep(1)
반응형

댓글