728x90
1
가장 쉽고 빠르게 구글 트랜드에서 실시간 검색 키워드 가져오는 방법
먼저 Test 겸 키워드를 넣어서 가져오겠습니다.
import sys
from pytrends.request import TrendReq
import time
- sys: 파이썬 인터프리터와 관련된 시스템 기능을 다룹니다. 이 코드에서는 출력 인코딩을 설정하기 위해 사용합니다.
- pytrends.request.TrendReq: PyTrends 라이브러리의 핵심 클래스입니다. 이를 통해 구글 트렌드 데이터를 요청할 수 있습니다.
- time: 일정 시간 간격으로 요청을 보내기 위해 사용합니다. 구글 트렌드에서 너무 많은 요청을 보내면 차단될 수 있으므로 간격 조정이 중요합니다.
# UTF-8 인코딩 출력
sys.stdout.reconfigure(encoding='utf-8')
- 파이썬의 출력 스트림(sys.stdout)의 기본 인코딩을 UTF-8로 변경합니다.
- 한국어 출력이 깨지지 않도록 해줍니다.
- 이 설정이 없으면 터미널이나 로그에서 한글이 ����처럼 깨져 보일 수 있습니다.
# PyTrends 설정
pytrends = TrendReq(hl='ko', tz=360)
TrendReq 초기화: 구글 트렌드 데이터를 요청하기 위해 PyTrends 객체를 생성합니다.
- hl='ko': 데이터를 한국어로 가져옵니다.
- tz=360: 한국 시간(UTC+9)을 기준으로 데이터를 처리합니다.
# 키워드 리스트
keywords = ['파이썬', '머신 러닝']
그럼 Test로 원하는 키워드를 배열로 가져오겠습니다.
검색 해보고 싶은 키워드를 배열에 담으면 됩니다.
for keyword in keywords:
try:
pytrends.build_payload([keyword], timeframe='today 1-m')
data = pytrends.interest_over_time()
print(data) # 한글 출력
time.sleep(60)
except Exception as e:
print(f"Error : {keyword} - {e}")
time.sleep(120)
그리고 반복문을 통해서 배열의 담긴 키워드 들을 다 조사를 할 예정입니다.
- build_payload: 구글 트렌드 데이터 요청을 설정하는 메서드입니다.
- [keyword]: 현재 반복문에서 처리 중인 키워드를 지정합니다.
- timeframe='today 1-m': 최근 1개월 데이터를 요청합니다.
- timeframe을 조정하면 원하는 기간의 데이터를 분석할 수 있습니다. 예를 들어:
- 최근 1개월: 'today 1-m'
- 최근 1일: 'now 1-d'
- interest_over_time(): 요청한 키워드의 시간에 따른 관심도 데이터를 가져옵니다.
- 반환된 데이터는 팬더스(DataFrame) 형식으로 제공됩니다.
- 이 데이터를 엑셀 파일로 저장하거나 시각화 라이브러리로 그래프를 그릴 수 있습니다.
- 요청 간격을 60초로 설정합니다.너무 많은 요청을 빠르게 보내면 구글에서 IP를 차단할 수 있습니다.
- 적절한 간격을 두는 것이 중요합니다.
2
Test.py
[ 최종 코드 ]
# UTF-8 인코딩 출력
sys.stdout.reconfigure(encoding='utf-8')
# PyTrends 설정
pytrends = TrendReq(hl='ko', tz=360)
# 키워드 리스트
keywords = ['파이썬', '머신 러닝']
for keyword in keywords:
try:
pytrends.build_payload([keyword], timeframe='today 5-y')
data = pytrends.interest_over_time()
print(data) # 한글 출력
time.sleep(60)
except Exception as e:
print(f"에러 발생: {keyword} - {e}")
time.sleep(120)
3
import sys
import io
# 출력 스트림의 기본 인코딩 설정
sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding='utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding='utf-8')
# 테스트 출력
print("한글 테스트")
from pytrends.request import TrendReq
import pandas as pd
import matplotlib.pyplot as plt
# pytrends 객체 생성
pytrends = TrendReq(hl='ko', tz=360)
# 실시간 급상승 검색어 가져오기
trending_searches = pytrends.trending_searches(pn='south_korea')
keywords = trending_searches[0].tolist()[:5] # 상위 5개의 급상승 검색어
print("실시간 급상승 검색어:", keywords)
테스트는 끝났으니 이제 실시간 급상승 하는 키워드를 수집할 수 있는 로직을 새로 짜겠습니다.
임의의 키워드 대신 구글 트랜드에서 실시간으로 하는 검색어들을 수집해 추출하는 방식으로 코드를 짰습니다.
현재 시각으로 나오는 구글 트랜드 분석은
['지금 거신 전화는', '빅뱅', 'K리그1', '스타레일', '세븐틴']
이렇게 나옵니다.
나중에는 이러한 방법으로 사람들의 관심사를 가지고 포스팅 할 수도 있다고 생각합니다.
그러면 블로그의 유입하는 사람들도 많아질 수 있다고 생각합니다
감사합니다.
728x90
반응형
'console.log("What ? " + Cord); > Python' 카테고리의 다른 글
[Python] 리스트 컴프리헨션 List Comprehension (파이썬) (0) | 2024.11.28 |
---|---|
[Python] 파이썬으로 뉴욕타임즈의 기사 데이터 크롤링 (0) | 2024.11.24 |
[Python] VS Code에서 개발 환경 세팅하기 (0) | 2024.11.22 |
[Python] 활용한 웹 크롤링의 모든 것 (2) | 2024.11.21 |
Python 기본 문법과 개념 (2) | 2024.11.20 |