goodthings4me.tistory.com
네이버에서 검색어 입력 시 보이는 관련 검색어(자동완성어)를 추출하는 파이썬 크롤링 코드임. html 소스코드 보기로 봐도 보이지 않는 이유는 동적으로 움직이기 때문이며, 이런 경우에는 개발자 도구에서 해당 부분에 대해 코드를 확인해봐야 함
네이버 자동완성어 추출해보기
네이버에서 아래처럼 검색어를 입력하면 노출되는 관련 검색어들을 자동완성어라 하는데, 이 부분에 대한 추출하는 방법은 다음과 같다.
크롬 등의 브라우저에서 개발자도구(F12) 창을 열고, Network 탭 밑에 있는 All 또는 JS 부분을 클릭하고 좌측의 Name 부분에서 ac?q=%로 시작하는 것들을 클릭하여 위 이미지 내용과 같은 검색어가 보이는 것(아래 이미지 참고)을 찾아서 드래그하면 된다.
해당 내용은 json 형태의 source로 되어있으며, Name 부분에서 마우스 우클릭하여 새탭 열기를 하면 아래처럼 보인다. (여기서 드래그래도 됨
이 부분에 대해 파이썬 크롤링으로 처리하면 더 간편하게 추출할 수 있다.
[파이썬 소스 코드]
import requests
import json
##네이버 검색 자동완성어 추출
def naver_search_keyword(coreKeyword):
url = f'https://ac.search.naver.com/nx/ac?q={coreKeyword}&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_5'
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_string = response.text.split('(')[1].replace(')', '')
auto_keywords = json.loads(json_string) # dict로 변환
print(auto_keywords)
keywords = []
for auto_words in auto_keywords['items']:
for word in auto_words:
keywords.append(word[0])
print(f'검색어 "{coreKeyword}" 자동완성어 추출 결과:\n')
for w in keywords:
print(w)
naver_search_keyword('모기장')
[실행 결과]
{'query': ['모기장'], 'answer': [], 'intend': [], 'items': [[['원터치 모기장', '0'], ['침대모기장', '0'], ['모기장텐트', '0'], ['대형모기장', '0'], ['모기장', '0'], ['현관모기장', '0'], ['
모기장 쉘터', '0'], ['유모차 모기장', '0'], ['아기 모기장', '0'], ['사각모기장', '0']]]}
검색어 "모기장" 자동완성어 추출 결과:
원터치 모기장
침대모기장
모기장텐트
대형모기장
모기장
현관모기장
모기장 쉘터
유모차 모기장
아기 모기장
사각모기장
※ 관련 포스팅 더보기
'코딩 연습 > 파이썬 크롤링' 카테고리의 다른 글
네이버 쇼핑 관련 자동완성어, 연관검색어, 추천키워드 추출 (0) | 2022.07.03 |
---|---|
네이버 연관검색어 추출하기 [파이썬 크롤링] (0) | 2022.07.02 |
파이썬 크롤링 기초 예제 (0) | 2022.06.16 |
쇼핑몰 상품 2가지 옵션 조합 크롤링하기 (0) | 2022.06.15 |
네이버 블로그의 전체 페이지 저장하기(방법 설명) (5) | 2022.06.13 |
댓글