반응형
from serpapi import GoogleSearch
from datetime import datetime
import os
# 사용자 정의 함수: Google 트렌드에서 키워드 트렌드 가져오기
def fetch_keyword_trends(api_key, query_list, date_range, output_dir="output"):
"""
Google 트렌드에서 특정 주제의 인기 키워드를 가져오는 함수.
Parameters:
api_key (str): SerpApi API 키
query_list (list): 검색할 주제(키워드)들의 리스트
date_range (str): 검색 기간 (예: "today 7-d", "2023-01-01 2023-01-07")
output_dir (str): 결과 파일을 저장할 디렉토리 경로 (기본값: "output")
"""
# 결과 저장 디렉토리 생성
if not os.path.exists(output_dir):
os.makedirs(output_dir)
# 결과를 저장할 리스트 초기화
all_output_lines = []
for topic in query_list:
# 관련 검색어 요청 파라미터 설정
params_queries = {
"engine": "google_trends",
"hl": "ko",
"geo": "KR",
"q": topic,
"date_range": date_range,
"api_key": api_key,
"data_type": "RELATED_QUERIES"
}
search = GoogleSearch(params_queries)
results = search.get_dict()
# 카테고리(검색어) 헤더 추가
all_output_lines.append(f"======== 기본 검색어 '{topic}' ========")
# Top 관련 검색어 처리 (상위 5개 항목)
all_output_lines.append(">> Top 관련 검색어:")
if results.get('related_queries') and results['related_queries'].get("top"):
for item in results['related_queries']["top"][:5]:
all_output_lines.append(f"관련 검색어: {item.get('query', '')}")
all_output_lines.append(f"인기도 (값): {item.get('value', '')}")
all_output_lines.append(f"링크: {item.get('link', '')}")
all_output_lines.append(f"SerpApi 링크: {item.get('serpapi_link', '')}")
all_output_lines.append("---")
else:
all_output_lines.append("Top 관련 검색어 데이터가 없습니다.")
# Rising 관련 검색어 처리 (상위 5개 항목)
all_output_lines.append(">> Rising 관련 검색어:")
if results.get('related_queries') and results['related_queries'].get("rising"):
for item in results['related_queries']["rising"][:5]:
all_output_lines.append(f"관련 검색어: {item.get('query', '')}")
all_output_lines.append(f"인기도 (값): {item.get('value', '')}")
all_output_lines.append(f"링크: {item.get('link', '')}")
all_output_lines.append(f"SerpApi 링크: {item.get('serpapi_link', '')}")
all_output_lines.append("---")
else:
all_output_lines.append("Rising 관련 검색어 데이터가 없습니다.")
# 각 카테고리 끝에 빈 줄 추가
all_output_lines.append("\n")
# 현재 날짜를 포함한 파일명 생성 (예: related_queries_20250410_combined.txt)
today_str = datetime.now().strftime('%Y%m%d')
filename = os.path.join(output_dir, f"related_queries_{today_str}.txt")
# 파일로 결과 저장
with open(filename, "w", encoding="utf-8") as f:
f.write("\n".join(all_output_lines))
print(f"모든 관련 검색어 데이터가 '{filename}'에 저장되었습니다.")
# 실행 예시
if __name__ == "__main__":
# 사용자 입력 받기
api_key = input("SerpApi API 키를 입력하세요: ").strip()
query_list = input("검색할 주제(키워드)를 쉼표로 구분하여 입력하세요 (예: 뉴스, 재테크, 육아): ").split(",")
date_range = input("검색 기간을 입력하세요 (예: today 7-d, 2023-01-01 2023-01-07): ").strip()
# 함수 호출
fetch_keyword_trends(api_key=api_key, query_list=query_list, date_range=date_range)
반응형
'Languages&Library > Python' 카테고리의 다른 글
Perplexity API를 활용한 블로그 포스트 자동 생성기 (1) | 2025.04.13 |
---|---|
동영상 클립 만들기 / 원하는 구간 자르기 (0) | 2023.04.19 |
DICOM series에 object detection결과 그리기 (0) | 2022.05.11 |