본문 바로가기
컴퓨터공학

[2025 최신] Tistory 블로그 자동화 시스템 구축 - 2

by oioiwoon 2025. 2. 20.
반응형

🚀 2단계: 트렌드 키워드 자동 수집

이제 Google Trends와 네이버 데이터랩에서 현재 인기 있는 키워드를 자동으로 수집하는 코드를 작성해보자.


📌 2-1. Google Trends에서 실시간 트렌드 키워드 가져오기

Google Trends를 활용하면 현재 인기 검색어(실시간 트렌드)를 자동으로 가져올 수 있어.

설치해야 할 라이브러리 아래 명령어를 실행해서 필요한 패키지를 설치하자.

pip install pytrends pandas

코드: Google Trends에서 인기 키워드 가져오기

이제 google_trends.py 파일을 만들어서 아래 코드를 복사해서 실행하자.

from pytrends.request import TrendReq
import pandas as pd

# Google Trends API 연결
pytrends = TrendReq(hl='ko', tz=540)  # 한국 기준 (tz=540)

# 실시간 인기 검색어 가져오기
def get_google_trends():
    trending_searches = pytrends.trending_searches(pn='south_korea')  # 한국 실시간 트렌드
    top_keywords = trending_searches[0].tolist()  # 키워드 리스트 변환
    return top_keywords[:10]  # 상위 10개 키워드 반환

# 실행 테스트
if __name__ == "__main__":
    trends = get_google_trends()
    print("📌 현재 Google Trends 인기 키워드:")
    for i, keyword in enumerate(trends, 1):
        print(f"{i}. {keyword}")

코드 실행 방법

  1. Python 파일 저장 (google_trends.py)
  2. 터미널에서 실행
    python google_trends.py
    
  3. 출력 결과 예시
    📌 현재 Google Trends 인기 키워드:
    1. 손흥민 인터뷰
    2. 챔피언스리그 16강
    3. BTS 신곡
    4. 한국 축구 대표팀
    5. 날씨 예보
    6. 삼성전자 주가
    7. 신작 드라마
    8. 넷플릭스 화제작
    9. 게임 신작 출시
    10. 아이폰 신제품 루머
    

이제 Google Trends에서 실시간 인기 키워드를 가져올 수 있어!
다음으로 네이버 데이터랩에서 인기 키워드를 가져오는 코드를 작성해보자. 🚀


📌 2-2. 네이버 데이터랩에서 실시간 키워드 가져오기

Google Trends뿐만 아니라, 네이버 데이터랩에서도 인기 검색어를 가져오면 더 정확한 트렌드 분석이 가능해.

설치해야 할 라이브러리 아래 명령어를 실행해서 requests와 beautifulsoup4를 설치하자.

pip install requests beautifulsoup4

코드: 네이버 데이터랩 인기 검색어 가져오기

이제 naver_trends.py 파일을 만들어서 아래 코드를 복사해서 실행하자.

import requests
from bs4 import BeautifulSoup

# 네이버 실시간 검색어 가져오기
def get_naver_trends():
    url = "https://datalab.naver.com/keyword/realtimeList.naver"  # 네이버 데이터랩 URL
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
    }

    response = requests.get(url, headers=headers)
    soup = BeautifulSoup(response.text, "html.parser")

    # 검색어 추출
    keywords = soup.select(".ranking_item .item_title")
    top_keywords = [keyword.text.strip() for keyword in keywords]

    return top_keywords[:10]  # 상위 10개 키워드 반환

# 실행 테스트
if __name__ == "__main__":
    trends = get_naver_trends()
    print("📌 현재 네이버 데이터랩 인기 검색어:")
    for i, keyword in enumerate(trends, 1):
        print(f"{i}. {keyword}")

 

Naver는 JavaScript 로딩 방식을 사용하기에, requests 만으로 데이터를 가져오지 못함.

Selenium을 사용해 직접 웹페이지를 실행하고 데이터를 가져온다.

코드가 네이버 데이터랩에서 검색어를 제대로 가져오지 못하는 문제가 계속 발생하고 있어.
이럴 경우, 페이지 구조가 변경되었거나 네이버가 Selenium 접근을 감지하고 차단했을 가능성이 커.

이를 해결하기 위해 Selenium에서 브라우저를 실제 사용자처럼 동작하도록 설정해야 해.
네이버가 봇을 감지하지 못하게 하는 방법을 추가하자.

반응형

코드 실행 방법

  1. Python 파일 저장 (naver_trends.py)
  2. 터미널에서 실행
    python naver_trends.py
    
  3. 출력 결과 예시
    📌 현재 네이버 데이터랩 인기 검색어:
    1. 손흥민 인터뷰
    2. 로또 당첨 번호
    3. 챔피언스리그 16강 대진표
    4. 넷플릭스 화제작
    5. 날씨 예보
    6. KBO 개막전 일정
    7. 최신 아이폰 출시
    8. 코인 급등
    9. 한국 경제 전망
    10. 인기 웹툰 업데이트
    

이제 네이버 데이터랩에서 실시간 인기 키워드를 가져올 수 있어!

 이 방법은 안돼서 데이터랩 API를 이용해서 크롤링 할거야

 

네이버 데이터랩 웹 페이지 크롤링이 계속 차단된다면, 네이버 데이터랩 API를 사용하는 것이 가장 확실한 방법이야.
API를 사용하면 보다 안정적으로 트렌드 데이터를 가져올 수 있고, 크롤링 차단 문제도 발생하지 않아.


해결 방법: 네이버 데이터랩 API 활용

네이버 데이터랩 API를 사용해서 실시간 인기 검색어를 가져오는 방법을 단계별로 설명할게.


📌 1단계: 네이버 데이터랩 API 키 발급받기

네이버 데이터랩 API를 사용하려면 네이버 개발자 센터에서 API 키를 발급받아야 해.

  1. 네이버 개발자 센터 접속
  2. 애플리케이션 등록
    • "애플리케이션 등록" 버튼 클릭
    • 애플리케이션 이름: 네이버 트렌드 크롤러
    • 사용 API 선택:
      • 검색 트렌드 API (DataLab API) -> 데이터랩 (검색어트렌드)
    • 비로그인 오픈 API 서비스 환경: WEB 설정 -  http://localhost
  3. Client ID & Client Secret 확인
    • 애플리케이션 등록이 완료되면 Client IDClient Secret이 제공됨.
    • 이 값을 복사해서 코드에서 사용해야 함.

📌 2단계: 네이버 데이터랩 API를 이용한 트렌드 검색어 가져오기

API 키를 발급받았으면, 이제 Python 코드로 실시간 트렌드 데이터를 가져와 보자.

필요한 라이브러리 설치

아래 명령어를 실행해서 requests 라이브러리를 설치하자.

pip install requests

3단계: 네이버 데이터랩 API 요청 코드 작성

네이버 데이터랩 API를 활용해서 실시간 트렌드 키워드를 가져오는 코드를 작성하자.

📌 아래 코드에서 CLIENT_ID와 CLIENT_SECRET 값을 네이버 개발자 센터에서 발급받은 값으로 변경해야 해!

import requests
import json

# 네이버 API 인증 정보 (네이버 개발자 센터에서 발급받은 값으로 변경)
CLIENT_ID = "YOUR_CLIENT_ID"  # 네이버 개발자 센터에서 발급받은 Client ID 입력
CLIENT_SECRET = "YOUR_CLIENT_SECRET"  # 네이버 개발자 센터에서 발급받은 Client Secret 입력

# 네이버 데이터랩 API URL
NAVER_DATALAB_URL = "https://openapi.naver.com/v1/datalab/search"

# 검색어 트렌드 가져오기
def get_naver_trends():
    headers = {
        "X-Naver-Client-Id": CLIENT_ID,
        "X-Naver-Client-Secret": CLIENT_SECRET,
        "Content-Type": "application/json",
    }

    # 요청 데이터 (기간 및 검색어 설정)
    payload = {
        "startDate": "2024-02-01",
        "endDate": "2024-02-18",
        "timeUnit": "date",
        "keywordGroups": [
            {"groupName": "트렌드", "keywords": ["손흥민", "로또", "넷플릭스", "삼성전자", "아이폰"]},
        ],
        "device": "pc",
        "ages": ["3", "4", "5"],
        "gender": "f",
    }

    # API 요청
    response = requests.post(NAVER_DATALAB_URL, headers=headers, data=json.dumps(payload))

    if response.status_code == 200:
        result = response.json()
        return result
    else:
        print(f"❌ 네이버 데이터랩 API 요청 실패: {response.status_code}, {response.text}")
        return None

# 실행 테스트
if __name__ == "__main__":
    trends = get_naver_trends()
    if trends:
        print("📌 네이버 데이터랩 검색 트렌드:")
        print(json.dumps(trends, indent=4, ensure_ascii=False))
    else:
        print("❌ 데이터를 가져오지 못했습니다.")

테스트 방법

  1. 위 코드에서 CLIENT_ID와 CLIENT_SECRET 값을 네이버 개발자 센터에서 발급받은 값으로 변경.
  2. 파일 저장 (naver_trends_api.py)
  3. 터미널에서 실행
    python naver_trends_api.py
    
  4. 출력 예시
    📌 네이버 데이터랩 검색 트렌드:
    {
        "results": [
            {
                "title": "트렌드",
                "keywords": ["손흥민", "로또", "넷플릭스", "삼성전자", "아이폰"],
                "data": [
                    {"period": "2024-02-01", "ratio": 40.5},
                    {"period": "2024-02-02", "ratio": 42.3},
                    {"period": "2024-02-03", "ratio": 38.8},
                    ...
                ]
            }
        ]
    }
    

🎯 결론

이제 네이버 데이터랩 API를 사용해서 신뢰할 수 있는 트렌드 데이터를 가져올 수 있어!
웹 크롤링과 달리 API는 안정적으로 동작하므로 더 정확하고 빠르게 트렌드 데이터를 가져올 수 있어!

🚀 이제 실행해 보고 정상적으로 데이터가 나오는지 확인해 봐! 😊

 


이제 다음 단계로 넘어가서 Google Trends와 네이버 트렌드를 합쳐서 최적의 키워드를 선정하는 코드를 만들자! 🚀

 

반응형