본문 바로가기
코드리뷰/워드프레스

네이버 검색 키워드 자동 추출하기 (파이썬 코드 무료 공개)

by 디마드 2024. 2. 12.

네이버 블로그 작성할 키워드가 잘 떠오르지 않는다면 "자동 완성" 기능을 이용해 아이디어를 얻어보자. 

1. 네이버 검색 창에  "유튜브" 키워드를 입력하고 초성을 하나씩 차례대로 넣어보자. 

예를 들어 "유튜브"로 시작하는 키워드를 전부 추출하려면,

네이버 검색 창에 "유튜브" 입력하고 한 칸을 띄우고 "ㄱ"을 입력하면 자동완성된 키워드 목록을 보여준다. 이걸 한 번에 자동으로 추출할 수 있다면 글감을 떠올리는 좋은 아이디어가 될 것이다. 

2. F12 개발자 도구를 열어 Network탭으로 이동한다.

"ac?q=" 시작하는 값을 클릭하면 오른쪽 Headers탭- Request URL을 확인할 수 있다. 네이버에 자동완성 키워드를 요청하는 것으로 이  요청을 그대로 브라우저에서 요청하면 결과를 확인할 수 있다.  

키워드 request
자동완성 결과값

Response 탭에서 확인해도 된다. 

결론은 초성별 Response결괏값을 추출해 하나의 파일로 저장하면, 한 번에 관련 키워드 전체를 확인할 수 있다는 말이다. 파이썬 코드로 작성하자. 

3. 자동완성 키워드 자동추출 파이썬 코드

import requests
import json

keyword_pre = "유튜브"
keyword_post = ["","ㄱ","ㄴ","ㄷ","ㄹ","ㅁ","ㅂ"]

# 키워드 + 초성 조합하기
keyword_results = []
for post in keyword_post:
    keyword = f"{keyword_pre} {post}"
    url = f"https://ac.search.naver.com/nx/ac?q={keyword}&con=0&frm=nv&ans=2&r_format=json&r_enc=UTF-8&r_unicode=0&t_koreng=1&run=2&rev=4&q_enc=UTF-8&st=100&_callback=_jsonp_11"    
    # 검색 요청/결과
    response = requests.get(url)
    # 유용한 키워드 추출하기
    result = response.text.split("_jsonp_11(")[1][:-1]
    # str -> dictionary 변환
    dic_result = json.loads(result)
    # dictionary -> items list 추출
    print(type(dic_result),dic_result)
    items = dic_result['items']
    print(type(items[0]),items[0])
    for item in items[0]:
        keyword_results.append(item[0])
        
# 파일 저장하기
with open(f'result_{keyword_pre}.txt',"w",encoding="utf-8") as f:
    keyword_results = [_keyword + "\n" for _keyword in keyword_results]
    f.writelines(keyword_results)

검색할 대표 단어를 입력한다. 

keyword_pre = "유튜브"

검색결과를 요청하고 응답결과를 사용하기 편리하게 리스크형태로 변환한다. 

# 검색 요청/결과
    response = requests.get(url)
    # 유용한 키워드 추출하기
    result = response.text.split("_jsonp_11(")[1][:-1]
    # str -> dictionary 변환
    dic_result = json.loads(result)
    # dictionary -> items list 추출
    print(type(dic_result),dic_result)
    items = dic_result['items']
    print(type(items[0]),items[0])
    for item in items[0]:
        keyword_results.append(item[0])

최종 추출 결과를 파일로 저장한다. 

# 파일 저장하기
with open(f'result_{keyword_pre}.txt',"w",encoding="utf-8") as f:
    keyword_results = [_keyword + "\n" for _keyword in keyword_results]
    f.writelines(keyword_results)
 

4. 추출 결과 확인하기

반응형

댓글