Tag: Python

  • Python을 사용하여 Google 뉴스 RSS를 블로그에 자동 포스팅하기

    Google 뉴스 RSS를 가져와서, WordPress 블로그에 자동으로 포스팅하는 과정을 정리해 드릴게요.

    1️⃣ Python 및 환경 설정

    📌 1. Python 설치

    Mac에서는 기본적으로 Python이 설치되어 있지만, 최신 버전이 필요할 수도 있습니다.

    brew install python

    설치 후 버전을 확인하세요.

    python3 --version

    출력 예시: Python 3.13.1

    (3.6 이상이면 OK)

    📌 2. 가상 환경(venv) 설정

    가상 환경을 만들어 프로젝트를 격리하는 것이 좋습니다.

    mkdir rss_to_blog
    cd rss_to_blog
    python3 -m venv venv
    source venv/bin/activate  # 가상 환경 활성화

    source venv/bin/activate를 실행하면 (venv)가 터미널 앞에 붙어야 합니다.

    📌 3. 필요한 패키지 설치

    pip install feedparser requests

    • feedparser → RSS 피드를 가져오기 위한 라이브러리

    • requests → WordPress API 호출을 위한 HTTP 라이브러리

    2️⃣ Google 뉴스 RSS 가져오기

    Python 코드로 Google 뉴스 RSS를 가져와봅니다.

    📌 Google 뉴스 RSS URL 예시

    import requests
    import feedparser
    
    rss_url = "https://news.google.com/rss?hl=ko&gl=KR&ceid=KR:ko"
    
    # 브라우저처럼 보이도록 User-Agent 설정
    headers = {
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36"
    }
    
    # RSS 요청 보내기
    response = requests.get(rss_url, headers=headers)
    feed = feedparser.parse(response.content)
    
    # RSS 데이터 확인
    print("✅ 받아온 뉴스 개수:", len(feed.entries))
    
    for entry in feed.entries[:5]:  # 최신 5개 기사 출력
        print(f"제목: {entry.title}")
        print(f"링크: {entry.link}")
        print(f"게시 날짜: {entry.published}")
        print("-" * 40)

    실행

    python3 rss_test.py

    ✅ 정상 실행되면 최신 뉴스 5개가 출력됩니다.

    3️⃣ WordPress API를 이용해 블로그에 자동 포스팅

    📌 1. WordPress REST API 설정

    WordPress에서 API를 사용하려면 Application Password를 발급받아야 합니다.

    1. WordPress 관리자 페이지로 이동 (https://your-wordpress-site.com/wp-admin)

    2. 사용자 → 내 프로필 (Users → Your Profile)

    3. Application Passwords 섹션에서 새 비밀번호 생성

    (예: RSS Auto Poster)

    4. 발급된 비밀번호를 저장해 둡니다.

    📌 2. WordPress에 자동 포스팅하는 Python 코드

    RSS에서 뉴스 데이터를 가져와 WordPress 블로그에 자동으로 게시하는 코드입니다.

    import requests
    import feedparser
    from requests.auth import HTTPBasicAuth
    
    # ✅ Google 뉴스 RSS URL
    rss_url = "https://news.google.com/rss?hl=ko&gl=KR&ceid=KR:ko"
    
    # ✅ WordPress REST API 설정
    WP_URL = "https://your-wordpress-site.com/wp-json/wp/v2/posts"
    WP_USERNAME = "your_username"  # WordPress 관리자 계정
    WP_APP_PASSWORD = "your_application_password"  # 발급받은 비밀번호
    
    # ✅ RSS 요청 보내기
    headers = {"User-Agent": "Mozilla/5.0"}
    response = requests.get(rss_url, headers=headers)
    feed = feedparser.parse(response.content)
    
    # ✅ 최신 뉴스 3개 포스팅
    for entry in feed.entries[:3]:
        post_title = entry.title
        post_content = f"<p><a href='{entry.link}'>기사 원문 보기</a></p>"
    
        # WordPress API 요청 데이터
        post_data = {
            "title": post_title,
            "content": post_content,
            "status": "publish"  # 'draft'로 하면 검토 후 게시 가능
        }
    
        # ✅ WordPress API 요청
        wp_response = requests.post(WP_URL, json=post_data, auth=HTTPBasicAuth(WP_USERNAME, WP_APP_PASSWORD))
    
        if wp_response.status_code == 201:
            print(f"✅ 게시 성공: {post_title}")
        else:
            print(f"❌ 게시 실패: {wp_response.text}")

    📌 실행

    python3 rss_to_wordpress.py

    ✅ 성공하면 블로그에 뉴스가 자동으로 게시됩니다.

    4️⃣ 자동 실행 (스케줄링)

    뉴스를 정기적으로 자동 포스팅하려면 cron을 설정합니다.

    📌 1. crontab 설정

    crontab -e

    📌 2. crontab에 추가

    매일 오전 9시에 실행하고 싶다면:

    0 9 * * * /Users/bigeyes0218/Developments/rss_to_blog/venv/bin/python3 /Users/bigeyes0218/Developments/rss_to_blog/rss_to_wordpress.py

    ✅ 이제 매일 오전 9시에 Google 뉴스가 자동으로 블로그에 게시됩니다!

    🚀 최종 정리

    단계설명
    1Python 및 가상 환경 설정 (venv)
    2feedparser를 이용해 Google 뉴스 RSS 가져오기
    3WordPress REST API를 이용해 자동 포스팅
    4crontab으로 정기 실행 자동화

    ✅ 이제 Python을 이용해 Google 뉴스 → WordPress 블로그 자동 포스팅이 완성되었습니다! 🚀😊