본문 바로가기
컴퓨터공학

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

by oioiwoon 2025. 2. 20.
반응형

🚀 3단계: ChatGPT를 이용한 블로그 글 자동 작성

이제 네이버 데이터랩에서 가져온 실시간 트렌드 키워드를 활용해서 ChatGPT를 이용해 자동으로 블로그 글을 생성하는 코드를 작성해보자.


📌 3-1. OpenAI API 키 발급받기

이 단계에서는 ChatGPT API를 사용해서 블로그 글을 자동 생성할 거야.
이를 위해 OpenAI API 키가 필요해.

OpenAI API 키 발급받는 방법

  1. OpenAI 개발자 센터에 가입 후 로그인.
  2. API Keys 페이지로 이동.
  3. 새로운 API 키(Secret Key) 생성 후 복사해서 안전한 곳에 저장.

📌 3-2. 필수 라이브러리 설치

ChatGPT API를 사용하려면 openai 라이브러리가 필요해.

아래 명령어를 실행해서 설치하자.

pip install openai

📌 3-3. ChatGPT를 이용한 블로그 글 자동 생성 코드

이제 ChatGPT API를 활용해서 네이버 데이터랩에서 가져온 키워드로 블로그 글을 자동 생성하는 코드를 작성해보자.

📌 수정된 코드 (auto_blog_writer.py)

 

반응형
import openai
import requests
import json
from datetime import datetime, timedelta
from bs4 import BeautifulSoup

# ✅ OpenAI API Key 설정
OPENAI_API_KEY = "YOUR_OPENAI_API_KEY"  # OpenAI에서 발급받은 API 키 입력
openai.api_key = OPENAI_API_KEY

# ✅ 네이버 API 인증 정보
CLIENT_ID = "YOUR_NAVER_CLIENT_ID"
CLIENT_SECRET = "YOUR_NAVER_CLIENT_SECRET"

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

# ✅ 오늘 날짜 자동 설정
today = datetime.today().strftime("%Y-%m-%d")
one_week_ago = (datetime.today() - timedelta(days=7)).strftime("%Y-%m-%d")

# ✅ 네이버 실시간 검색어 크롤링
def get_naver_real_time_keywords():
    url = "https://www.naver.com/"
    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"
    }

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

        # 실시간 검색어 요소 추출 (네이버 구조 변경 가능)
        keywords = soup.select(".ah_l .ah_k")
        popular_keywords = [keyword.text.strip() for keyword in keywords]

        if not popular_keywords:
            raise ValueError("네이버 검색어를 가져오지 못했습니다.")

        return popular_keywords[:10]  # 상위 10개 검색어 반환

    except Exception as e:
        print(f"⚠ 네이버 실시간 검색어 크롤링 실패: {e}")
        return ["손흥민", "로또", "넷플릭스", "삼성전자", "아이폰", "KBO", "챔피언스리그", "날씨", "환율", "비트코인"]

# ✅ 네이버 데이터랩 API 요청
def get_naver_trends():
    headers = {
        "X-Naver-Client-Id": CLIENT_ID,
        "X-Naver-Client-Secret": CLIENT_SECRET,
        "Content-Type": "application/json",
    }

    # 🔥 실시간 검색어 반영 🔥
    popular_keywords = get_naver_real_time_keywords()

    payload = {
        "startDate": one_week_ago,
        "endDate": today,
        "timeUnit": "date",
        "keywordGroups": [{"groupName": "트렌드", "keywords": popular_keywords}],
        "device": "pc",
        "ages": ["3", "4", "5", "6"],
        "gender": "",
    }

    response = requests.post(NAVER_DATALAB_URL, headers=headers, data=json.dumps(payload))

    if response.status_code == 200:
        result = response.json()
        keyword_trends = result.get("results", [])[0].get("data", [])

        sorted_keywords = sorted(keyword_trends, key=lambda x: x["ratio"], reverse=True)

        top_keywords = [popular_keywords[i] for i in range(len(sorted_keywords)) if i < 10]

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

# ✅ ChatGPT를 이용한 블로그 글 자동 생성
def generate_blog_post(keyword):
    prompt = f"""
    {keyword}에 대한 블로그 글을 작성해 주세요.
    
    1. 제목을 포함한 구조로 작성해 주세요.
    2. 제목은 흥미를 끄는 문장으로 만들어 주세요.
    3. 3~4개의 소제목과 내용을 포함해 주세요.
    4. 자연스럽고 가독성이 높은 문체로 작성해 주세요.
    """

    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "system", "content": "당신은 블로그 콘텐츠를 전문적으로 작성하는 AI입니다."},
                  {"role": "user", "content": prompt}],
        max_tokens=1000
    )

    return response["choices"][0]["message"]["content"].strip()

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

        # ✅ ChatGPT를 이용해 상위 2개 키워드로 블로그 글 생성
        for keyword in trends[:2]:  # 상위 2개 키워드만 글 생성
            print(f"\n📝 {keyword}에 대한 블로그 글 생성 중...")
            blog_post = generate_blog_post(keyword)
            print(blog_post)
    else:
        print("❌ 데이터를 가져오지 못했습니다.")

변경된 점

  1. 네이버 실시간 검색어 → 데이터랩 API 활용 → 검색 트렌드 분석
    • 실시간 검색어를 활용하여 트렌드 키워드를 자동으로 가져옴.
    • ChatGPT가 가장 인기 있는 키워드 2개를 선택해서 블로그 글을 자동으로 생성.
  2. ChatGPT를 활용한 블로그 글 자동 작성 추가
    • generate_blog_post(keyword) 함수를 추가하여 ChatGPT가 자동으로 블로그 글을 생성.
    • 최대 1000자(토큰)까지 생성 가능.
  3. 최신 트렌드를 반영하여 블로그 콘텐츠 자동 생성
    • 매일 새로운 키워드로 글을 자동으로 생성할 수 있도록 개선.

테스트 방법

  1. 파일 저장 (auto_blog_writer.py)
  2. 터미널에서 실행
    python auto_blog_writer.py
    
  3. 출력 예시
    📌 네이버 데이터랩 검색 트렌드:
    1. 손흥민 경기 일정
    2. 넷플릭스 신작
    3. 삼성전자 주가
    4. 로또 당첨 번호
    5. 챔피언스리그 16강 대진표
    ...
    
    📝 손흥민 경기 일정에 대한 블로그 글 생성 중...
    [ChatGPT가 생성한 블로그 글 출력]
    
    📝 넷플릭스 신작에 대한 블로그 글 생성 중...
    [ChatGPT가 생성한 블로그 글 출력]
    

🎯 결론

이제 ChatGPT가 실시간 트렌드 키워드로 블로그 글을 자동으로 생성할 수 있어!
매일 바뀌는 트렌드 키워드로 최신 블로그 글을 생성하는 자동화 시스템 완성!
이제 실행해서 블로그 글이 정상적으로 생성되는지 확인해 봐! 🚀

 

반응형